Skip to content

Instantly share code, notes, and snippets.

@zsan
Last active December 24, 2015 17:49
Show Gist options
  • Save zsan/6837885 to your computer and use it in GitHub Desktop.
Save zsan/6837885 to your computer and use it in GitHub Desktop.
# ONLY ALLOW REGISTER WHEN SIGNED OUT
if ($v{'user_id'} ne '') {
# PAGE TELLING USER TO SIGN OUT
} else {
# THERE ARE 2 POSSIBILITIES HERE
# 1. NEW USER AND WE"RE GOING TO PROVIDE THEM REGISTRATION FORM
# 2. SUBMITTED PARAMETERS FROM USER REGISTRATION FORM
# AND WE'RE GOING TO PROVIDE THEM CHECKBOXES TO SUBSCRIBE,
# SO THEY CAN BE A SUBSCRIBER
# NEW USER THAT HAS SUBMITTED THE FORM AND GOING TO SET SUBSCRIPTIONS
if ($f{email} && $f{password} && $f{confirm_password} && $f{profession_id} && $f{specialty_id} && $f{name_first} && $f{name_last}) {
# REGISTRATION ATTEMPT DETECTED
# PROCESS SUBMITTED INFORMATION!
my $register = &call_api($url);
$v{'response'} = $register->{response};
# IF SUCCESS IS RETURNED FROM API'S CALL
if ($v{'response'} eq '1') {
# REGISTRATION SUCCESSFUL
# AT THIS POINT, USER HAS FILLED THE FORM AND INFORMATION WAS SUBMITTED.
# - THAT'S NOT MEAN USER WILL AUTOMATICALLY SIGNED IN AS SIGNED USER
# - BUT THE APPLICATION STILL NEED TO KNOW IF USER WANT TO SUBSCRIBE
# TO SOME AVAILABLE SUBSCRIPTIONS.
# - AND WE WILL PROVIDE THIS FEATURE VIA CHECKBOXES AND AJAX REQUEST
# - TO ACHIVE THAT, WE HAVE TO KNOW USER AUTH KEY
# (REMEMBER USER IS "STILL" ANONYMOUS USER)
# SO WE ARE DEPENDING ON THEIR SUBMITTED PASSWORD AND EMAIL
# SO LETS LOGIN VIA API'S CALL
my $xml_login = api_login({
email => $f{email},
password => $f{password}
});
# WE ARE GOING TO PUSH CHECKBOXES TO THIS ARRAY
my @collections = ();
# IF LOGIN SUCCESS
if ($xml_login) {
# GET AUTH_KEY AND USER_ID
my $auth_key = $xml_login->{auth_key}[0];
my $user_id = $xml_login->{user_id}[0];
# I HAVE TO CHECK IF USER IS ALREADY SUBSCRIBED
# ITS WEIRD BUT MAYBE, I'LL HAVE SOME EXPLANATIONS LATER))
# GET USER COLLECTIONS VIA API'S CALL
my $user_subscription = api_get_user_subscriptions({
user_id => $user_id,
auth_key => $auth_key,
});
my %user_collection_id;
# SOME CODE AFTER THIS IS ABOUT TO COLLECT USER SUBSCRIPTION
# AND PUT THEM INTO HASH %user_collection_id
# GET AVAILABLE COLLECTIONS
my $xml_collection = api_get_collections($collection_param);
# IF SUCCESS
if ($xml_collection) {
@collections = map {
# COMPARE %user_collection_id to
# IF THEY ALREADY SUBSCRIBED THEN SET CHECKBOX TO OFF
} @$xml_collection;
};
# SHOW THE CHECKBOXES TO USER
$v{'page_content'} = qq{ CONTAIN CHECK BOXES FOR USER};
} else {
# SO FAR I AM NOT SURE WHICH WAY TO GO
# I GUESS I'LL JUST SEND USER TO FINAL PAGE (REGISTRATION COMPLETED)
}
} else {
# IF REGISTRATION FAILED
# BACK TO FIRST THE FORM
}
}
# PUMP OUT REGISTRATION PAGE
# GET OPTIONS FOR DROP DOWN MENUS
# AT THIS STAGE ONLY NON SIGNED USER SHOULD GO HERE AND DO THE FIRST STEP
# OF REGISTRATION'S PROCESSES
$v{'page_content'} = qq{ FORM STEP #1 and #2 };} unless $v{'page_content'} ne '';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment