From cf4eb0e63894c8ac12d04b33d17ae15cdb615fbc Mon Sep 17 00:00:00 2001 From: Nikolai R Kristiansen Date: Fri, 31 Jul 2015 23:01:20 +0200 Subject: [PATCH] Phone number API now looks in din_card-table --- api/api_functions.php | 23 +++++++++++++++++++++-- api/phonenumber.php | 41 +++++++++++++---------------------------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/api/api_functions.php b/api/api_functions.php index d7a8777..d510e3d 100644 --- a/api/api_functions.php +++ b/api/api_functions.php @@ -150,12 +150,14 @@ function get_card($card_number) { $conn = get_db_connection(DB_FETCHMODE_ASSOC); $card_number = $conn->quoteSmart($card_number); - $sql = "SELECT * FROM din_card WHERE card_number=$card_number"; + $expires_sql = "DATE_ADD(DATE(registered), INTERVAL 1 YEAR)"; + $has_valid_membership_sql = "NOW() <= $expires_sql AND owner_phone_number IS NOT NULL"; + $sql = "SELECT *,$has_valid_membership_sql AS has_valid_membership,$expires_sql AS expires FROM din_card WHERE card_number=$card_number"; $res = $conn->getAll($sql); if( DB::isError($res) ) { - new Exception($res->getMessage()); + return array('error' => $res->getMessage(), 'sql' => $sql); } if( count($res) === 1) { return $res[0]; @@ -214,6 +216,23 @@ function get_user_id_by_card_number($card_number) { return $res[0][0]; } +function get_card_by_phone_number($phone_number) { + $conn = get_db_connection(DB_FETCHMODE_ORDERED); + + $phone_number = $conn->quoteSmart($phone_number); + $sql = "SELECT card_number FROM din_card WHERE owner_phone_number=$phone_number"; + + $res = $conn->getAll($sql); + + if( DB::isError($res) ) { + new Exception($res->getMessage()); + } + if( count($res) === 0 ) { + return NULL; + } + return get_card($res[0][0]); +} + function get_card_owner_phone_number($card_number) { $conn = get_db_connection(DB_FETCHMODE_ORDERED); diff --git a/api/phonenumber.php b/api/phonenumber.php index 5259061..07d8c04 100644 --- a/api/phonenumber.php +++ b/api/phonenumber.php @@ -10,31 +10,24 @@ $conn = get_db_connection(DB_FETCHMODE_ORDERED); if( !isset($_GET['apikey']) ) { - set_response_code(400); - echo json_encode(array('error' => "Missing param apikey.")); - die(); + return_json_response(array('error' => "Missing param apikey."), 400); } /* Valid API KEY (defined in credentials.php) ? */ if( $_GET['apikey'] !== USER_API_KEY && $_GET['apikey'] !== USER_API_KEY_KASSA ) { - set_response_code(400); - echo json_encode(array('error' => "Invalid apikey: '".$_GET['apikey']."'.")); - die(); + return_json_response(array('error' => "Invalid apikey: '".$_GET['apikey']."'."), 400); } /* Validate params */ if(!isset($_GET['q'])) { - set_response_code(400); - echo json_encode(array('error' => "Missing param q")); - die(); + return_json_response(array('error' => "Missing param q"), 400); } $phonenumber = $_GET['q']; $phonenumber = clean_phonenumber($phonenumber); if(!valid_phonenumber($phonenumber)) { - set_response_code(400); - echo json_encode(array('error' => "Invalid phone number: '".$phonenumber."'")); - die(); + return_json_response(array('error' => "Invalid phone number: '".$phonenumber."'"), 400); } +$card = get_card_by_phone_number($phonenumber); $phonenumber = $conn->quoteSmart($phonenumber); // Search query @@ -46,13 +39,10 @@ $sql = " $res = $conn->getAll($sql); if( DB::isError($res) ) { - set_response_code(500); - echo json_encode(array('error' => $res->message)); - die(); + return_json_response(array('error' => $res->message), 500); } if(count($res) == 0) { - echo json_encode(array('meta' => array('num_results' => 0),'results' => [])); - die(); + return_json_response(array('card' => $card, 'users' => [])); } $id_array = array(); foreach($res as $value) { @@ -63,15 +53,10 @@ $user_ids = implode(",", $id_array); try{ $results = get_user_data($user_ids); } catch(Exception $e) { - set_response_code(500); - echo json_encode(array('error' => $e->getMessage())); - die(); + return_json_response(array('error' => $e->getMessage()), 500); + return; // Note: Makes IDE happy } -echo json_encode(array( - 'meta' => array( - 'num_results' => count($results) - ), - 'results' => $results, -)); - -?> \ No newline at end of file +return_json_response(array( + 'users' => $results, + 'card' => $card +)); \ No newline at end of file