/** * Validate ApiRequest * @author zbrown * * @param ApiRequestObject $apiRequest * @return bool|string */ public function validateRequest(ApiRequestObject $apiRequest, $endpoint) { if ($apiRequest->getSessionToken() == Config::API_STATUS_CHECK_SESSION_TOKEN || $apiRequest->getPublicKey() == Config::API_STATUS_CHECK_PUBLIC_KEY) { return 'status'; } $requiredConfig = Yaml::parse(file_get_contents($this->get('kernel')->locateResource(Config::API_REQUIRED_PARAMS_CONFIG))); $requiredParameters = $requiredConfig['required']['api'][$endpoint]; foreach ($requiredParameters as $key => $value) { if ($value === true) { $action = 'get' . $key; $res = $apiRequest->{$action}(); if (empty($res)) { return 'invalid'; break; } } } $app = $this->getDoctrine()->getRepository('YupItsZacFreeGeoBundle:Session')->findOneBy(array('session' => $apiRequest->getSessionToken())); return is_null($app) ? false : true; }
/** * Determine session type * @author zbrown * * @param ApiRequestObject $apiRequest * @return string */ public function getSessionType(ApiRequestObject $apiRequest) { //2 = Normal API requests, 1 = API Status Check if ($apiRequest->getSessionToken() == Config::API_STATUS_CHECK_SESSION_TOKEN || $apiRequest->getPublicKey() == Config::API_STATUS_CHECK_PUBLIC_KEY) { return '1'; } else { return '2'; } }
/** * Validate ApiRequest * @author zbrown * * @param ApiRequestObject $apiRequest * @return bool|string */ public function validateRequest(ApiRequestObject $apiRequest, $endpoint) { if ($apiRequest->getSessionToken() == Config::API_STATUS_CHECK_SESSION_TOKEN) { return 'status'; } $requiredParamsConfig = Yaml::parse(file_get_contents($this->container->get('kernel')->locateResource(Config::API_REQUIRED_PARAMS_CONFIG))); $requiredParameters = $requiredParamsConfig['required']['api'][$endpoint]; $validRequest = true; foreach ($requiredParameters as $key => $value) { if ($value === true) { $action = 'get' . $key; $res = $apiRequest->{$action}(); if (empty($res)) { return 'invalid'; break; } } } return true; }