public function prepareRequestData(Request $requestObject, $endpoint) { $apiRequest = new ApiRequestObject(); $apiRequest->setAttributesByArray($requestObject); $requestValidation = $this->validateRequest($apiRequest, $endpoint); if ($requestValidation === true) { return $apiRequest; } elseif ($requestValidation == false) { return ['status' => Strings::API_STATUS_FATAL, 'reason' => Strings::API_REASON_INVALID_SESSION, 'msg' => Strings::API_MSG_INVALID_SESSION]; } elseif ($requestValidation == 'status') { return ['status' => Strings::API_STATUS_SUCCESS, 'reason' => Strings::API_REASON_SUCCESS, 'msg' => Strings::API_MSG_STATUS_ONLINE]; } elseif ($requestValidation == 'invalid') { return ['status' => Strings::API_STATUS_FATAL, 'reason' => Strings::API_REASON_MISSING_PARAMS, 'msg' => Strings::API_MSG_MISSING_PARAMS]; } }
/** * Select airport data within constraints * @author zbrown * * @param $lat * @param $lon * @param $limit * @param $max * @return bool * @throws \Doctrine\DBAL\DBALException */ private function findNearAirport(ApiRequestObject $apiRequest) { $latitude = $apiRequest->getLatitude(); $longitude = $apiRequest->getLongitude(); $limit = $apiRequest->getLimit(); $max = $apiRequest->getMaximum(); $qb = $this->getDoctrine()->getEntityManager()->getConnection(); $q = $qb->prepare('SELECT name, type, icao_code, iata_code, X(GeomFromText(coordinates_wkt)) AS latitude, Y(GeomFromText(coordinates_wkt)) AS longitude, SQRT( POW(69.1 * (X(GeomFromText(coordinates_wkt)) - :lat), 2) + POW(69.1 * (:lon - Y(GeomFromText(coordinates_wkt))) * COS(X(GeomFromText(coordinates_wkt)) / 57.3), 2)) AS distance FROM airports HAVING distance < :max ORDER BY distance ASC LIMIT ' . $limit); $q->bindValue('lat', $latitude); $q->bindValue('lon', $longitude); $q->bindValue('max', $max); return $q->execute(); }
/** * 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'; } }