'Invalid request')); die(); } /* Decrypt body */ // TODO enable //$crypt = new CryptoHelper(SNAP_IV, SNAP_KEY); //$body = $crypt->decrypt($body); $data = (array) json_decode($body); if($data === NULL) { set_response_code(400); echo json_encode(array('error' => 'Can\'t decode body')); die(); } /* Validate supplied data */ $required_keys = array('firstname', 'lastname', 'phone', 'email'); foreach($required_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); if( !valid_phonenumber($data['phone']) ) { set_response_code(400); echo json_encode(array('error' => '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 */ $user_id = add_user($data); /* Get and format user */ $user = get_user($user_id); /* Return encrypted user object */ //echo json_encode($user); //echo $crypt->encrypt(json_encode($user)); ?>