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()