/** * Handle incoming requests that query for sound samples in neighbourhood. * File names are taken from the database. */ public static function handleSamplesRequest($latitude, $longitude, $range) { // Validate geo coordinates if (!MediaServer::validGeoCoordinates($latitude, $longitude)) { return array('Statuscode' => 'Error', 'Message' => 'Invalid or no geo coordinates provided.'); } // Return data of sound samples in neighbourhood $database = new Database(); $sampleData = $database->getSamples($latitude, $longitude, $range); if (count($sampleData) <= 0) { return array('Statuscode' => 'Info', 'Message' => 'No nearby sound samples found.'); } // Log samples request Logger::log('Samples requested.', Logger::SAMPLES_REQUEST); // Send response return array('Statuscode' => 'OK', 'Message' => 'Sound samples queried successfully.', 'SampleData' => $sampleData, 'ResultCount' => count($sampleData)); }