Adds some more card number checks
This commit is contained in:
1 parent
2615f7154d
commit
2108959402
3 files changed
+77
-3
No files matched your search
@@ -78,6 +78,9 @@ if( !function_exists('valid_phonenumber') ) {
|
||||
|
||||
|
||||
function get_user_data($ids, $conn) {
|
||||
if( !is_string($ids) ) {
|
||||
new Exception('Param ids should be a comma separated string of user ids');
|
||||
}
|
||||
$ACTIVE_GROUP_ID = "2";
|
||||
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
|
||||
@@ -137,4 +140,27 @@ function get_user_data($ids, $conn) {
|
||||
$results[] = $result;
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
function update_card($user_id, $card_number) {
|
||||
/* Update card number on user */
|
||||
|
||||
}
|
||||
function get_user_id_by_card_number($card_number) {
|
||||
$conn = get_db_connection(DB_FETCHMODE_ORDERED);
|
||||
|
||||
$card_number = $conn->quoteSmart($card_number);
|
||||
$sql = "SELECT mc.userId FROM din_membercard AS mc
|
||||
LEFT JOIN din_user AS u ON mc.userId=u.id
|
||||
WHERE mc.id=$card_number";
|
||||
|
||||
$res = $conn->getAll($sql);
|
||||
|
||||
if( DB::isError($res) ) {
|
||||
new Exception($res->getMessage());
|
||||
}
|
||||
if( count($res) === 0 ) {
|
||||
return NULL;
|
||||
}
|
||||
return $res[0][0];
|
||||
}
|
||||
+21
-3
@@ -37,9 +37,27 @@ if($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if( !is_numeric($data['user_id']) ) {
|
||||
return_json_response(array('error' => "Value user_id must be numeric: '".$data['user_id']."'"), 400);
|
||||
}
|
||||
/* TODO: If user does not exist, bail */
|
||||
/* TODO: If user relationship to card exists, bail */
|
||||
/* TODO: Either Add card relationship OR remove old relationsip and add new */
|
||||
/* If user does not exist, bail */
|
||||
$user_data = get_user_data($data['user_id'], $conn);
|
||||
if( count($user_data) !== 1 ) {
|
||||
return_json_response(array('error' => "User with user_id '".$data['user_id']."' does not exist."), 400);
|
||||
}
|
||||
$user = $user_data[0];
|
||||
|
||||
/* If card number is attached to specified user, bail */
|
||||
if($user['cardno'] === $data['card_number']) {
|
||||
return_json_response(array('error' => "Card number ".$data['card_number']." is already attached to user (".$data['user_id'].")."), 400);
|
||||
}
|
||||
/* If card number does not exist, bail */
|
||||
$id_from_card_number = get_user_id_by_card_number($data['card_number']);
|
||||
if($id_from_card_number === NULL) {
|
||||
return_json_response(array('error' => "Card number ".$data['card_number']." does not exist."), 400);
|
||||
}
|
||||
/* If card belongs to another user, bail */
|
||||
if($id_from_card_number !== "") {
|
||||
return_json_response(array('error' => "Card number ".$data['card_number']." belongs to another user ($id_from_card_number)."), 400);
|
||||
}
|
||||
/* TODO: Add card relationship OR remove old relationsip and add new */
|
||||
return_json_response(array('error' => 'TODO: Not implemented'));
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
require_once("api_functions.php");
|
||||
require_once("../includes/DB.php");
|
||||
|
||||
define("API_URL", 'http://inside.dev');
|
||||
|
||||
/* cardnumber.php */
|
||||
function test_post_cardnumber() {
|
||||
$data = json_encode(array(
|
||||
'user_id' => '1',
|
||||
'card_number' => '123456789'
|
||||
));
|
||||
|
||||
$ch = curl_init(API_URL.'/api/cardnumber.php?apikey='.USER_API_KEY_KASSA);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_ENCODING ,"");
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=UTF-8'));
|
||||
|
||||
$result = curl_exec($ch);
|
||||
var_dump($result);
|
||||
$decoded_result = json_decode($result, true);
|
||||
var_dump($decoded_result);
|
||||
|
||||
/* Register */
|
||||
curl_close ($ch);
|
||||
}
|
||||
|
||||
test_post_cardnumber();
|
||||
Reference in new issue
Block a user