diff --git a/inside/User.php b/inside/User.php index c815e45..ef82243 100644 --- a/inside/User.php +++ b/inside/User.php @@ -98,6 +98,17 @@ class User { return false; } + /* TODO replace +47 and 0047 with blank */ + //if( $data['phonenumber'] ) { + //} + + /* No duplicate phone numbers */ + if( getUseridFromPhone($data['phonenumber']) !== false ) { + notify("Telefonnummeret er allerede registrert på en bruker."); + $this->id = -1; + return false; + } + if (isset ($data['active'])) { $this->division_id_request = $data['division']; } else { diff --git a/snapporder/api/query.php b/snapporder/api/query.php index b29a257..532261b 100644 --- a/snapporder/api/query.php +++ b/snapporder/api/query.php @@ -1,12 +1,4 @@ 'Not a phone number:'.$data['phone'])); + die(); +} +if( !valid_email($data['email']) ) { + set_response_code(400); + echo json_encode(array('error' => 'Not an email: '.$data['email'])); + die(); +} +/* Existing user? */ +if( getUseridFromEmail($data['email']) !== false) { + set_response_code(409); + echo json_encode(array('error' => 'Existing user with email: '.$data['email'])); + die(); +} +if( getUseridFromPhone($data['phone']) !== false ) { + set_response_code(409); + echo json_encode(array('error' => 'Existing user with phone: '.$data['phone'])); + die(); +} /* Create user */ -//$new_user = new User(NULL, $data); +$user_id = add_user($data); /* Get and format user */ -//$user = get_user($new_user->id); - -/* Add back phone number from query */ -//$user['phone'] = $phone; +$user = get_user($user_id); /* Return encrypted user object */ //echo json_encode($user); diff --git a/snapporder/lib/functions.php b/snapporder/lib/functions.php index 4a53434..4c7604e 100644 --- a/snapporder/lib/functions.php +++ b/snapporder/lib/functions.php @@ -1,4 +1,6 @@ 'not implemented' ) ); + die(); + + // TODO $cols from data + $sql = 'INSERT INTO din_user ('.implode($cols, ",").') VALUES ()'; + + $res = $conn->query($sql); + if( DB::isError($res) ) { + echo json_encode( array('error' => 'db_error', 'error_message' => $res->toString() ) ); + die(); + } +} + /* Get user object with group ids and membership status */ function get_user($user_id) { global $conn; @@ -46,5 +65,7 @@ function get_user($user_id) { function valid_phonenumber($phone) { return is_numeric($phone) && strlen($phone) === 8; } - +function valid_email($email) { + return preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email); +} ?> diff --git a/snapporder/tests/testuser.json b/snapporder/tests/testuser.json index 0b2080e..7439f0a 100644 --- a/snapporder/tests/testuser.json +++ b/snapporder/tests/testuser.json @@ -1,6 +1,6 @@ { "firstname": "Test", "lastname": "Testesen", - "email": "asdf@asdf.com", - "phone": "48105886" + "email": "asdfasdfz@asdf.com", + "phone": "48105887" }