/** * Validate the client's API key, store reported noise level * value in the database and return a success message. * * \param $request REST request from client * * \return Array with response data */ private function reportNoiseLevel($request) { $result = array(); $bodyData = $request->getBodyData(); $arguments = $request->getURLArguments(); // Validate client credentials if (isset($bodyData['AppName']) && isset($bodyData['ApiKey']) && Authentication::validate($bodyData['AppName'], $bodyData['ApiKey'])) { // Report noise level if (isset($arguments['latitude']) && isset($arguments['longitude']) && isset($bodyData['Time']) && isset($bodyData['NoiseLevel']) && isset($bodyData['NoiseLevelOrg']) && isset($bodyData['ReportedBy']) && isset($bodyData['InPocket'])) { // Prevent PHP notice because of undefined index if (!isset($arguments['zipCode'])) { $arguments['zipCode'] = null; } $result = MediaServer::handleReportRequest($arguments['latitude'], $arguments['longitude'], $bodyData['Time'], $arguments['zipCode'], $bodyData['NoiseLevel'], $bodyData['NoiseLevelOrg'], $bodyData['ReportedBy'], $bodyData['InPocket']); } else { $result = array('Statuscode' => 'Error', 'Message' => 'Invalid or incomplete request. Check URL arguments and body data.'); } } else { $result = array('Statuscode' => 'Error', 'Message' => 'Invalid or no auth data provided. Check your API key.'); } return $result; }
/** * Method for sound level reporting. */ public function reportNoiseLevel($latitude, $longitude, $timestamp, $zipCode, $noiseLevel) { return MediaServer::handleReportRequest($latitude, $longitude, $timestamp, $zipCode, $noiseLevel); }