Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require('../model/Response.php');
- require('../model/JsonReader.php');
- require('../model/TsvTransformer.php');
- const CITIES_PATH = '../cities.json';
- const TSV_FILE = '../Polskie-miasta.tsv';
- if(isset($_GET)) {
- if(!file_exists(CITIES_PATH)) {
- $transformer = new TsvTransformer();
- $transformer->transform('../Polskie-miasta.tsv');
- }
- $reader = new JsonReader();
- $json = $reader->readFromFile(CITIES_PATH);
- if(!isset($_GET['search_query'])) {
- echo json_encode(new Response(false, 'Missing required parameter \'search_query\''));
- die;
- }
- $searchPhrase = htmlspecialchars($_GET['search_query']);
- if(strlen($searchPhrase) == 0) {
- echo json_encode(new Response(false, 'Search query parameter cannot be empty'));
- die;
- }
- $pattern = '/' . $searchPhrase . '/i';
- $result = array_values(array_filter($json, function($element) use ($pattern) {
- if(preg_match($pattern, $element['city'])) {
- return true;
- }
- return false;
- }));
- if(count($result) > 20) {
- $bonusResults = count($result) - 20;
- $result = array_slice($result, 0, 20);
- } else {
- $bonusResults = 0;
- }
- echo json_encode(new Response(true, ['cities' => $result, 'restResults' => $bonusResults]));
- } else {
- echo json_encode(new Response(false, 'Unsupported method, this api only supports method GET'));
- die;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement