Example #1
0
 /**
  * Handle incoming requests that query for average noise level by zip
  * code. Sound levels are taken from the database and average is
  * calculated across all values with desired postal code.
  */
 public static function handleAverageNoiseLevelByZipCodeRequest($zipCode)
 {
     // Validate zip code
     if (!MediaServer::validZipCode($zipCode, false)) {
         return array('Statuscode' => 'Error', 'Message' => 'Invalid or no zip code provided.');
     }
     // Return average noise level by zip code
     $database = new Database();
     $resultSet = $database->getAverageNoiseLevelByZipCode($zipCode);
     // Cast average noise level to integer
     $averageNoiseLevel = intval($resultSet[0]['averageNoiseLevel']);
     if ($averageNoiseLevel == '') {
         return array('Statuscode' => 'Info', 'Message' => 'No sound levels found in postcode area.');
     }
     // Log average noise levels request
     Logger::log('Average noise levels requested for zip code area \'' . $zipCode . '\'.', Logger::NOISE_AVG_BY_ZIP_REQUEST);
     // Send response
     return array('Statuscode' => 'OK', 'Message' => 'Average sound level successfully queried by zip code.', 'AverageNoiseLevel' => $averageNoiseLevel);
 }