def seed_db(): """Seeds the database.""" import string import json from app.api.rest.users.models import User from app.api.rest.topics.models import Topic from app.api.rest.messages.models import Message user1 = User.find(email="*****@*****.**") user2 = User.find(email="*****@*****.**") if not user1: user1 = User(name="mark", email="*****@*****.**", password="******") user1.insert() user1.id = user1.id.__str__() if not user2: user2 = User(name="juan", email="*****@*****.**", password="******") user2.insert() user2.id = user2.id.__str__() seed_data = json.load(open("seed.json")) alphabet = list(string.ascii_lowercase) alphabet.reverse() for i in alphabet: topic = Topic(subject=f"{i} This is a sample Subject", description=seed_data.get("lorem"), created_by=user2.id, updated_by=user2.id) db.session.add(topic) for i in range(1, 31): topic.messages.append( Message(message=f"Sample Comment {i}", created_by=user2.id, updated_by=user2.id)) for i in range(1, 31): topic.messages.append( Message(message=f"Sample Comment {i}", created_by=user1.id, updated_by=user1.id)) db.session.commit()
def get(self, id): try: user = User.find(id=id) if not user: response_object = {"message": "User does not exist."} return response_object, 404 else: response_object = user.json() return response_object, 200 except Exception: response_object["message"] = "Try again." db.session.rollback() db.session.flush() return response_object, 500
def post(self): post_data = request.get_json() response_object = {"message": "Invalid payload."} if not post_data: return response_object, 400 email = post_data.get("email") password = post_data.get("password") name = post_data.get("name") try: user = User.find(email=email) if not user: user = User(name=name, email=email, password=password) user.insert() added_user = User.find(email=post_data["email"]) response_object = added_user.json() return response_object, 201 else: response_object["message"] = ( "Sorry. That email already exists.") return response_object, 400 except (exc.IntegrityError, ValueError, TypeError): db.session.rollback() db.session.flush() return response_object, 400
def post(self): post_data = request.get_json() response_object = {"message": "Invalid payload."} if not post_data: return response_object, 400 email = post_data.get("email") password = post_data.get("password") try: user = User.find(email=email) if user: valid_password = bcrypt.check_password_hash( user.password_hash, password) if valid_password: redis_client.setex( user.id.__str__(), int(current_app.config["JWT_ACCESS_TOKEN_EXPIRES"]), "inactive") token = create_access_token(identity=user.id.__str__(), fresh=True, user_claims=user.avatar) jti = get_jti(token) redis_client.setex( user.id.__str__(), int(current_app.config["JWT_ACCESS_TOKEN_EXPIRES"]), jti) response_object = {"token": token} return response_object, 200 else: response_object["message"] = "Invalid Credentials." return response_object, 401 else: response_object["message"] = "User does not exist." return response_object, 404 except Exception: db.session.rollback() db.session.flush() response_object["message"] = "Try again." return response_object, 500