diff --git a/api/api_functions.php b/api/api_functions.php index d510e3d..fe28b9b 100644 --- a/api/api_functions.php +++ b/api/api_functions.php @@ -259,4 +259,16 @@ function get_active_card_number($user) { } } return NULL; +} +function add_or_renew_membership($user, $data) { + // TODO stub + throw new Exception("TODO: Not implemented!"); + + /* Membership expiry */ + /* One year from today (default) */ + if( !isset($data['purchased']) ) { + $data['purchased'] = date_create(); + } + /* ...or one year from specified date */ + $expires = date_format(date_modify($data['purchased'], "+1 year"), "Y-m-d"); } \ No newline at end of file diff --git a/api/card.php b/api/card.php index ea38c97..4d6a8f9 100644 --- a/api/card.php +++ b/api/card.php @@ -92,9 +92,6 @@ if($_SERVER['REQUEST_METHOD'] === 'POST') { return_json_response(array('user' => get_user_data($data['user_id']))); } - else if($data['action'] === 'renewal') { - return_json_response(array('error' => 'TODO not implemented')); - } return_json_response(array('error' => 'Unknown action, gave up.')); } diff --git a/api/register.php b/api/register.php index cca377a..182f83a 100644 --- a/api/register.php +++ b/api/register.php @@ -1,44 +1,4 @@ - "Invalid apikey: '".$data['apikey']."'."), 400); } -$data['phone'] = clean_phonenumber($data['phone']); -if( !valid_phonenumber($data['phone']) ) { - return_json_response(array('error' => "Not a phone number: '".$data['phone']."'"), 400); -} - $conn = get_db_connection(DB_FETCHMODE_ASSOC); /* Existing user? */ -$user_id = getUseridFromPhone($data['phone']); -if( $reg_type === "new" && $user_id !== false ) { - return_json_response(array('error' => 'Existing user with phone: '.$data['phone']), 409); -} -/* Renewal of membership? */ -if( $reg_type === "renewal" && $user_id === false ) { - return_json_response(array('error' => 'Could not find user with phone: '.$data['phone']), 409); -} - -$data['user_id'] = $user_id; -if( $reg_type === "renewal") { - $user = get_user($user_id); - /* Don't allow renewal of an existing valid membership. */ - if( $user['membership_status'] !== 0 ) { - if($user['expires'] === '') { - // Life long - return_json_response(array('error' => 'Cannot renew, user with phone '.$data['phone'].' has a life long membership.'), 409); - } - return_json_response(array('error' => 'Cannot renew, user with phone '.$data['phone'].' has a valid membership until: '.$user['expires']), 409); +$user = get_user($user_id); +/* Don't allow renewal of an existing valid membership. */ +if( $user['membership_status'] !== 0 ) { + if($user['expires'] === '') { + // Life long + return_json_response(array('error' => 'Cannot renew, user with id '.$user['id'].' has a life long membership.'), 409); } + return_json_response(array('error' => 'Cannot renew, user with phone '.$user['id'].' has a valid membership until: '.$user['expires']), 409); } /* Validate optional purchase_date */ @@ -135,18 +78,10 @@ if( isset($data['source']) && !in_array($data['source'], $valid_sources) ) { return_json_response(array('error' => 'Invalid value in field source: '.$data['source']), 400); } -/* Validate optional membership_trial */ -if( isset($data['membership_trial']) && $data['membership_trial'] !== "buddy") { - return_json_response(array('error' => 'Invalid value in field membership_trial: '.$data['membership_trial']), 400); -} - -/* Create user */ +/* Add or renew membership */ try { - if( $reg_type === "new" ) { - $user_id = add_user($data, $data['source']); - } else { - renew_user($data); - } + // TODO ADD or renew membership + add_or_renew_membership($user, $data); } catch(InsideDatabaseException $e) { error_log($e->getMessage()); return_json_response(array('error' => 'db_error', 'error_message' => $e->getMessage()), 500); @@ -161,24 +96,7 @@ try { return_json_response(array('error' => 'db_error', 'error_message' => $e->getMessage()), 500); } -/* Add register url */ -if($user['registration_status'] === "partial") { - $user['registration_url'] = generate_registration_url($user, SECRET_KEY); -} - -/* Add back phone number from query */ -$user['phone'] = $data['phone']; - -if( isset($data['membership_trial']) ) { - /* Add back membership_trial from query */ - $user['membership_trial'] = $data['membership_trial']; -} - -/* Send welcome email */ -if($reg_type === "new") { - send_activation_email($data, $user); - // TODO: send_activation_sms($data, $user); -} +// TODO: send new membership or renewal email /* Return encrypted user object */ return_json_response($user); diff --git a/snapporder/lib/functions.php b/snapporder/lib/functions.php index b0f30e6..6208c85 100644 --- a/snapporder/lib/functions.php +++ b/snapporder/lib/functions.php @@ -596,7 +596,7 @@ function validate_sms_form($data) { function save_sms_form($data) { $user_id = add_user($data, $data['source']); - log_userupdate($user_id, "Membership activated."); + log_userupdate($user_id, "Membership added to user."); return $user_id; } function save_activation_form($data) {