Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- from flask import request
- from flask import Response
- from flask import jsonify
- from utils import encrypt_password
- from models.user import User
- from models.login_logs import LoginLogs
- from mongoengine.errors import NotUniqueError, ValidationError
- import datetime
- from celery import Celery
- logger = logging.getLogger("default")
- celery = Celery("flask-scaffolding", broker="redis://redis:6379/0")
- celery.conf.update({"CELERY_BROKER_URL": "redis://redis:6379/0", "CELERY_RESULT_BACKEND": "redis://redis:6379/0"})
- def index():
- logger.info("Checking the flask scaffolding logger")
- return "Welcome to the flask scaffolding application"
- def signup():
- name = request.form.get("name", "Guest")
- email = request.form.get("email")
- password = request.form.get("password")
- confirm_password = request.form.get("confirm_password")
- if not password:
- return Response(status=400, response="password is required")
- if password != confirm_password:
- return Response(status=400, response="password & confirm_password should be same")
- user = User(name=name, email=email, password_hash=encrypt_password(password))
- try:
- user.save()
- return Response(status=201)
- except ValidationError:
- return Response(status=400, response="invalid email")
- except NotUniqueError:
- return Response(status=400, response="email is already in use")
- def login():
- email = request.form["email"]
- password = request.form["password"]
- try:
- user = User.objects.get(email=email, password_hash=encrypt_password(password))
- print('calling log_login_event')
- log_login_event.delay(email=user.email)
- return Response(status=200)
- except User.DoesNotExist:
- return Response(status=400, response="invalid email or password")
- @celery.task
- def log_login_event(email):
- print('in log_login_event')
- login_logs = LoginLogs(email=email)
- login_logs.save()
Add Comment
Please, Sign In to add comment