Example #1
0
 /**
  * Handle incoming requests that report noise levels. Store these in
  * the database.
  */
 public static function handleReportRequest($latitude, $longitude, $timestamp, $zipCode, $noiseLevel)
 {
     // Validate geo coordinates
     if (!MediaServer::validGeoCoordinates($latitude, $longitude)) {
         return array('Statuscode' => 'Error', 'Message' => 'Invalid or no geo coordinates provided.');
     }
     // Validate zip code
     if (!MediaServer::validZipCode($zipCode, true)) {
         return array('Statuscode' => 'Error', 'Message' => 'Invalid zip code provided. It must not exceed ten characters.');
     }
     // Store noise level in database
     $database = new Database();
     if (!$database->saveNoiseLevel($latitude, $longitude, $timestamp, $zipCode, $noiseLevel)) {
         return array('Statuscode' => 'Error', 'Message' => 'Could not write noise level to database.');
     }
     // Log noise level reporting
     Logger::log('Noise level \'' . $noiseLevel . '\' reported for zip code area \'' . $zipCode . '\': ' . 'http://maps.google.com/maps?q=' . $latitude . '+' . $longitude, Logger::NOISE_REPORT);
     // Send response
     return array('Statuscode' => 'OK', 'Message' => 'Noise level reported successfully.');
 }