Example #1
0
 /**
  * Set deeplink for the toast notification.
  *
  * @param String $deeplink Deeplink
  *
  * @return MPNSToastPayload $self Self Reference
  */
 public function set_deeplink($deeplink)
 {
     $deeplink = $this->escape_string($deeplink);
     if (strlen($deeplink) > 256) {
         $deeplink = substr($deeplink, 0, 256);
         $this->logger->notice('Deeplink for Windows Phone Toast Notification too long. Truncated.');
     }
     $this->elements['deeplink'] = $deeplink;
     return $this;
 }
Example #2
0
 /**
  * コメントを取り除きます。
  * @param \DOMComment $comment
  * @return true
  */
 protected function filterComment(\DOMComment $comment) : bool
 {
     $comment->parentNode->removeChild($comment);
     $this->logger->notice(_('コメントの使用は許可されていません。'), ['node' => XML_COMMENT_NODE]);
     return true;
 }
Example #3
0
 /**
  * Delegate request to service.
  *
  * Makes sure that exceptions are catched.
  *
  * @return Page|Error
  */
 protected function queryService($params)
 {
     $supportedTypes = $this->service->getSupportedTypes();
     $supportedParameters = $this->service->getSupportedParameters();
     $possibleParameters = array_merge($supportedParameters, \JSKOS\QueryModifiers);
     # filter out queries for unsupported types
     if (count($supportedTypes) and isset($params['type'])) {
         if (!in_array($params['type'], $supportedTypes)) {
             return new Page([]);
         }
     }
     # remove unknown parameters
     foreach (array_keys($params) as $name) {
         if (!in_array($name, $possibleParameters)) {
             $this->logger->notice('Unsupported query parameter {name}', ['name' => $name, 'value' => $params[$name]]);
             unset($params[$name]);
         }
     }
     # make sure all supported query parameters exist
     foreach ($supportedParameters as $name) {
         if (!isset($params[$name])) {
             $params[$name] = null;
         }
     }
     try {
         $response = $this->service->query($params);
     } catch (\Exception $e) {
         $this->logger->error('Service Exception', ['exception' => $e]);
         return new Error(500, '???', 'Internal server error');
     }
     if (is_null($response)) {
         return new Page([]);
     } elseif ($response instanceof Item) {
         return new Page([$response]);
     } elseif ($response instanceof Page or $response instanceof Error) {
         return $response;
     } else {
         $this->logger->error('Service response has wrong type', ['response' => $response]);
         return new Error(500, '???', 'Internal server error');
     }
     return $response;
 }