/**
  * 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;
 }
Example #2
0
 /**
  * Method for sound level reporting.
  */
 public function reportNoiseLevel($latitude, $longitude, $timestamp, $zipCode, $noiseLevel)
 {
     return MediaServer::handleReportRequest($latitude, $longitude, $timestamp, $zipCode, $noiseLevel);
 }