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(); } }