Exemplo n.º 1
0
 def on_post(self, req, resp):
     try:
         # Reading Json
         raw_json = req.stream.read(req.content_length or 0).decode('utf-8')
         resultdict_json = json.loads(raw_json, object_pairs_hook=OrderedDict, encoding='utf-8')
         # Converting Json to List
         list_values = [v for v in resultdict_json.values()]
         # Database Connection
         database_connection =get_db_connection()
         cursor = database_connection.cursor()
         # Accessing Temporary password function from Tools
         tempPassword = Tools.TemporaryPassword(size = 8, chars = string.ascii_uppercase + string.digits)
         # Accessing GenerateTokenId from Tools
         tokenID = Tools.GenerateTokenId()
         EmailTools.ActivationEmail(list_values[5],"Intuglo Account Activation",list_values[0],tokenID)
         status_signup = Tools.SignupUser(resultdict_json['Name'], resultdict_json['PhoneNumber'], resultdict_json['Country'], resultdict_json['Business'], resultdict_json['Industry'],resultdict_json['Email'],resultdict_json['UserType'],2,tokenID,tempPassword,cursor,database_connection)
         if(status_signup is True):
             resp.status = falcon.HTTP_200
             message = {'Status': 'Your account is successfully created'}
             result_json = json.dumps(message,default=str)
             resp.body = result_json
         else:
             resp.status = falcon.HTTP_400
             message = {'Status': 'Email existed. Try login with another email'}
             result_json = json.dumps(message)
             resp.body = result_json
     except ValueError as err:
         raise falcon.HTTPError(falcon.HTTP_400, traceback.print_exc(file=sys.stdout) , err.args)
     except pymysql.IntegrityError as err:
         raise falcon.HTTPError(falcon.HTTP_400, traceback.print_exc(file=sys.stdout) , err.args)
     except Exception as err:
         raise falcon.HTTPError(falcon.HTTP_400, traceback.print_exc(file=sys.stdout) , err.args)
     finally:
         cursor.close()
         database_connection.close()
    def on_get(self, req, resp, email):
        try:
            database_connection = get_db_connection()
            cursor = database_connection.cursor()
            cursor.execute("select count(1) from logins where email = '" +
                           email + "'")
            row = cursor.fetchone()
            if row['count(1)'] is 1:
                cursor.execute(
                    "select config_value from config where config_key='validity-days'"
                )
                row = cursor.fetchone()
                validity_days = row['config_value']
                tokenID = Tools.GenerateTokenId()

                query = "update logins set token_id = %s , token_validity = DATE_ADD(current_timestamp, INTERVAL %s DAY) where email = %s"
                data = (tokenID, validity_days, email)
                cursor.execute(query, data)
                database_connection.commit()
                EmailTools.ResetPasswordEmail(email, 2, tokenID)
                if cursor.rowcount is 1:
                    resp.status = falcon.HTTP_200
                    resp.body = ("200")
            else:
                resp.status = falcon.HTTP_204
                resp.body = ("204")
        except ValueError as err:
            raise falcon.HTTPError(falcon.HTTP_400,
                                   traceback.print_exc(file=sys.stdout),
                                   err.args)
        except pymysql.IntegrityError as err:
            raise falcon.HTTPError(falcon.HTTP_400,
                                   traceback.print_exc(file=sys.stdout),
                                   err.args)
        except Exception as err:
            raise falcon.HTTPError(falcon.HTTP_400,
                                   traceback.print_exc(file=sys.stdout),
                                   err.args)
        finally:
            cursor.close()
            database_connection.close()