<!--- <cfoutput>
#form.UUID#<br>
#form.OTP#
</cfoutput> --->

<cfparam name="form.mode" default="confirm">

<cfquery name="check_valid" datasource="#application.datasource#" dbtype="ODBC">
    SELECT	    ID, IsEmailVerified, EmailAddress
    FROM	    Users
    WHERE       UUID = '#form.UUID#'
                    AND 
                MobileVerifyCode = '#form.OTP#'
                    AND 
                IsContactVerified = 0
                    AND 
                IsEmailVerified = 0
</cfquery>

<cfif check_valid.recordcount EQ 1>

    <cfquery name="confirm_mobile" datasource="#application.datasource#" dbtype="ODBC">
        UPDATE	    Users
        SET         IsContactVerified = 1
        WHERE       ID = #check_valid.ID#
    </cfquery>

    <cfif check_valid.IsEmailVerified eq 1>

        You're now fully verified and ready to use Payfrit!<br><br>

        Click HERE to login and order.<br>

    <cfelse>

        OTP verified, please check your email <cfoutput>#check_valid.EmailAddress#</cfoutput><br><br>

        There's a link there for you to click, then you can login to Payfrit!<BR>

    </cfif>

<cfelse>    

    <cfquery name="check_valid_with_email_confirmed" datasource="#application.datasource#" dbtype="ODBC">
        SELECT	    ID, IsEmailVerified, EmailAddress
        FROM	    Users
        WHERE       UUID = '#form.UUID#'
                        AND 
                     MobileVerifyCode = '#form.OTP#'
                        AND 
                    IsContactVerified = 0
                        AND 
                    IsEmailVerified = 1
    </cfquery>

    <cfif check_valid_with_email_confirmed.recordcount eq 1>

        <cfquery name="confirm_mobile" datasource="#application.datasource#" dbtype="ODBC">
            UPDATE	    Users
            SET         IsContactVerified = 1
            WHERE       ID = #check_valid_with_email_confirmed.ID#
        </cfquery>

        <!--- might as well log them in since they confirmed successfully, probably a bad idea but not worried about it for now --->
        
        <!--- Update the session variables and request variables --->
        <cflock timeout="60" throwontimeout="Yes" type="EXCLUSIVE" scope="SESSION">
            <cfset session.UserID = #check_valid_with_email_confirmed.ID#>
            <!--- Re-duplicate them  --->
            <cfset request.UserID = Duplicate(session.UserID)>
        </cflock>
                            
        <cfmodule template="#application.wwwrootprefix#modules/notifier.cfm"
            domain="box.payfrit.com"
            from_email="admin@payfrit.com"
            to_email="#check_valid_with_email_confirmed.EmailAddress#"
            subject="Welcome to Payfrit!"
            email_body="Thanks for confirming your Payfrit account! Go order food!"
            >
        
        ok your account is all confirmed and you are logged in!<br><br>
        
        it's time to go <cfoutput><a href="#application.httpsprefix#index.cfm">buy some stuff!</a></cfoutput><br>

        <cflocation  url="index.cfm?userstatus=new">

    <cfelse>

        <cfquery name="check_valid" datasource="#application.datasource#" dbtype="ODBC">
            SELECT	    ID, IsEmailVerified
            FROM	    Users
            WHERE       UUID = '#form.UUID#'
                            AND 
                        IsContactVerified = 0
        </cfquery>

        <cfif check_valid.recordcount eq 1>

            OTP is incorrect, please re-check the code we sent you<br><br>

        <cfelse>

            Problem!<br><br>

            please <a href="register.cfm">try again</a><br>

        </cfif>
    
    </cfif>
    
</cfif>

