Example #1
0
 public function execute()
 {
     $service = func_get_arg(0);
     $config = $this->api->getConfig();
     $logger = $this->api->getLogger();
     // Stop if blocks is not configured
     if (!isset($config['block'])) {
         return;
     }
     $blocked = explode(',', $config['block']);
     if (in_array($_SERVER['REMOTE_ADDR'], $blocked)) {
         $logger->log("Request blocked for this IP by BlockIp Hook.");
         $response = new Api_Response();
         $response->setCode(406);
         $response->addError("Stop it you Spammer!");
         $this->api->send($response);
     }
 }
Example #2
0
 /**
  * Send response to client
  * 
  * @param Api_Response $data
  * @return void
  */
 public final function send(Api_Response $response)
 {
     // Modify parser
     $this->executeHooks(Api_Hook_IHook::HOOK_MODIFY_PARSER, array($this->parser));
     // Get content type
     $content_type = $this->parser->content_type;
     // Set the content type
     header("Generator: Advanced API");
     header('HTTP/1.0 ' . $response->getCode() . " " . $this->getStatusCodeMessage($response->getCode()));
     header('Content-type: ' . $content_type);
     // If code is note ok (not 200) then log the returning message
     if ($response->getCode() != 200) {
         $error = reset($response->getErrors());
         if (is_object($error)) {
             $this->logger->log($error->getMessage());
         }
     }
     // Create data array from response
     if (!is_array($response)) {
         $data['code'] = $response->getCode();
         foreach ($response->getErrors() as $error) {
             if (is_object($error)) {
                 $data['errors'][] = $error->getMessage();
             }
         }
         $data['data'] = $response->getData();
     }
     // Parse response array to correct type
     $this->parser->setData($data);
     $this->parser->setParams($this->request->getParams());
     echo $this->parser->parse();
     exit;
 }