Adds some more card number checks

This commit is contained in:
nikolark committed 2015-07-20 01:00:56 +02:00
1 parent 2615f7154d
commit 2108959402
3 files changed
+77 -3

No files matched your search

+26
View File
@@ -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
View File
@@ -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 {
+30
View File
@@ -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();