function api_getRepresentatives_postcode($pc) { $pc = preg_replace('#[^0-9]#i', '', $pc); if (is_postcode($pc)) { $constituency = postcode_to_constituency($pc); if ($constituency == 'CONNECTION_TIMED_OUT') { api_error('Connection timed out'); } elseif ($constituency) { if (is_array($constituency)) { $constituencies = $constituency; } else { $constituencies = array($constituency); } $output = array(); foreach ($constituencies as $c) { $output[] = _api_getMP_constituency($c); } api_output($output); } else { api_error('Unknown postcode'); } } else { api_error('Invalid postcode'); } }
function api_getMP_constituency($constituency) { $person = _api_getMP_constituency($constituency); if ($person) { $output = $person; api_output($output, strtotime($output['lastupdate'])); } else { api_error('Unknown constituency, or no MP for that constituency'); } }
function api_getPerson_postcode($pc, $house) { $pc = preg_replace('#[^a-z0-9 ]#i', '', $pc); $types = array(); if ($house == HOUSE_TYPE_NI) { $types = array('NIE'); } elseif ($house == HOUSE_TYPE_SCOTLAND) { $types = array('SPC', 'SPE'); } if (validate_postcode($pc)) { $constituencies = postcode_to_constituencies($pc, true); if ($constituencies == 'CONNECTION_TIMED_OUT') { api_error('Connection timed out'); } elseif ($types && isset($constituencies[$types[0]])) { $constituencies = array_map(function ($c) use($constituencies) { return $constituencies[$c]; }, $types); _api_getPerson_constituency($constituencies, $house); } elseif ($types && isset($constituencies['WMC'])) { api_error('Postcode not in correct region'); } elseif (isset($constituencies['WMC'])) { _api_getMP_constituency($constituencies['WMC']); } else { api_error('Unknown postcode'); } } else { api_error('Invalid postcode'); } }