Ejemplo n.º 1
0
 public function registerGCM()
 {
     if (XmlRequestValidator::isValidregisterGCMRequest($this->requestData)) {
         $session = $this->requestData->body->session;
         $gcm = $this->requestData->body->gcm;
         if (safe_input::is_valid_session_hash($session) && safe_input::is_valid_gcm_id($gcm)) {
             //chkec if the session hash exists
             $session_info = session::get_session_by_hash($session);
             if ($session_info != null) {
                 $res = Execute::registerGCM($session, $gcm);
                 if ($res) {
                     $this->response = XmlBuilder::registerGCMSuccessfullResponse("plain", $session);
                 } else {
                     $this->response = XmlBuilder::failed_response("plain", 4, XmlParseRequest::$DATABASE_ERROR, "server was unable register gcm id, try again");
                 }
             } else {
                 //the given hash doesn't exist in the database
                 Report::warning(__METHOD__ . "," . __LINE__, "register gcm id request contains a session hash that does not exist in the database: hash=" . $session);
                 $this->response = XmlBuilder::failed_response("plain", 4, 1, "expired session");
             }
         } else {
             //invalid data passed
             Report::error(__METHOD__ . "," . __LINE__, "register gcm id request contains an incorrectly formatted session hash or gcm id");
             $this->response = XmlBuilder::failed_response("plain", 4, 0, "invalid session or gcm id");
         }
     } else {
         //xml request was not formatted correctly
         Report::error(__METHOD__ . "," . __LINE__, "invalid register gcm request!");
         $this->invalidRequest();
     }
 }