Exemplo n.º 1
0
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()
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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