Register allmost works

This commit is contained in:
nikolark committed 2014-05-29 00:18:24 +02:00
1 parent 56d6fc176d
commit b80b058249
6 files changed
+97 -30

No files matched your search

+6 -15
View File
@@ -9,9 +9,10 @@
* Response:
*
* {
* "phone":" 42345678",
* "phone": "+4742345678",
* "membership_status": 1, // 0 - ikke medlem, 1 - medlem, 2 - aktiv
* "expires": "2015-04-23",
* "memberid": "4331",
* "cardno": "12345",
* "firstName": "Jon",
* "lastName": "Hansen",
@@ -40,7 +41,6 @@ if(!isset($_GET['phone'])) {
}
$phone = $_GET['phone'];
$phone = clean_phonenumber($phone);
// todo you are here
if( !valid_phonenumber($phone) ) {
set_response_code(400);
echo json_encode(array('error' => 'Not a phone number', 'query' => $_GET));
@@ -56,26 +56,17 @@ if(DB :: isError($conn)) {
echo json_encode(array('error' => 'Could not connect to DB'));
die();
}
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
/* Search in phone number table for phone number */
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
$phone = $conn->escapeSimple($phone);
$sql = "SELECT user_id FROM din_userphonenumber WHERE number='$phone'";
$res = $conn->query($sql);
if( DB::isError($res) ) {
set_response_code(500);
echo json_encode( array('error' => 'db_error', 'error_message' => $res->toString() ) );
die();
}
// empty?
if( $res->numRows() == 0) {
$user_id = getUseridFromPhone($phone);
if( $user_id === false ) {
echo json_encode( array('result' => 'No matching users'));
die();
}
$res->fetchInto($row);
/* Get and format user */
$user = get_user($row['user_id']);
$user = get_user($user_id);
/* Add back phone number from query */
$user['phone'] = $phone;
+34 -4
View File
@@ -62,17 +62,24 @@ if($data === NULL) {
}
/* Validate supplied data */
$required_keys = array('firstname', 'lastname', 'phone', 'email');
$valid_keys = array('firstname', 'lastname', 'phone', 'email');
foreach($required_keys as $key) {
foreach($valid_keys as $key) {
if(!array_key_exists($key, $data)) {
set_response_code(400);
echo json_encode(array('error' => 'missing required field \''.$key.'\''));
die();
}
}
var_dump($data);
foreach($data as $key => $value) {
if(!in_array($key, $valid_keys)) {
set_response_code(400);
echo json_encode(array('error' => 'unknown field \''.$key.'\''));
die();
}
}
$data['phone'] = clean_phonenumber($data['phone']);
if( !valid_phonenumber($data['phone']) ) {
set_response_code(400);
echo json_encode(array('error' => 'Not a phone number:'.$data['phone']));
@@ -83,6 +90,17 @@ if( !valid_email($data['email']) ) {
echo json_encode(array('error' => 'Not an email: '.$data['email']));
die();
}
/* Connect to database */
$options = array( 'debug' => 2, 'portability' => DB_PORTABILITY_ALL );
$conn = DB::connect(getDSN(), $options);
if(DB :: isError($conn)) {
echo $conn->toString();
set_response_code(500);
echo json_encode(array('error' => 'Could not connect to DB'));
die();
}
/* Existing user? */
if( getUseridFromEmail($data['email']) !== false) {
set_response_code(409);
@@ -94,6 +112,18 @@ if( getUseridFromPhone($data['phone']) !== false ) {
echo json_encode(array('error' => 'Existing user with phone: '.$data['phone']));
die();
}
/* validate firstname and lastname */
if( strlen($data['firstname']) < 2) {
set_response_code(400);
echo json_encode(array('error' => 'Too short firstname: '.$data['firstname']));
die();
}
if( strlen($data['lastname']) < 2) {
set_response_code(400);
echo json_encode(array('error' => 'Too short lastname: '.$data['lastname']));
die();
}
/* Create user */
$user_id = add_user($data);
@@ -102,7 +132,7 @@ $user_id = add_user($data);
$user = get_user($user_id);
/* Return encrypted user object */
//echo json_encode($user);
echo json_encode($user);
//echo $crypt->encrypt(json_encode($user));
?>