Пример #1
0
    def process_request(self, request: Request) -> GeneratedWindow:
        """

        :param request:
        :return:
        """

        if not request or not isinstance(request, Request):
            raise ValueError("Invalid argument request")

        if not request.identifier:
            raise ValueError("identifier cannot be null")

        if not request.command:
            raise ValueError("command cannot be null")

        if not request.phone:
            raise ValueError("phone cannot be null")

        session = self.__session_provider.get(identifier=request.identifier, phone=request.phone)

        if not session:
            session = Session(identifier=request.identifier, phone=request.phone, current_window=None)

        lottus_context = LottusContext(self.__initial_processor, current_session=session, processors=self.__processors)

        window = lottus_context.process_command(request.command)

        session.current_window = window
        self.__session_provider.save(session)
        self.__window_manager.save(window)

        return window
Пример #2
0
def get_comments():
    session = Session()
    comments_objects = session.query(Comment).all()

    schema = CommentSchema(many=True)
    comments = schema.dump(comments_objects)
    session.close()
    return comments
Пример #3
0
def get_book(title):
    session = Session()
    book_objects = session.query(Book).filter_by(title=title)

    schema = BookSchema(many=True)
    books = schema.dump(book_objects)
    session.close()
    return books
Пример #4
0
def get_users():
    session = Session()
    users_objects = session.query(User).all()

    schema = UserSchema(many=True)
    users = schema.dump(users_objects)
    session.close()
    return users
Пример #5
0
def get_books():
    session = Session()
    books_objects = session.query(Book).all()

    schema = BookSchema(many=True)
    books = schema.dump(books_objects)
    session.close()
    return books
Пример #6
0
def get_user(username):
    session = Session()
    user_objects = session.query(User).filter_by(username=username).limit(1)

    schema = UserSchema(many=True)
    user = schema.dump(user_objects)
    session.close()
    return user
Пример #7
0
def create_comment_platform(data):
    posted_comment = CommentSchema(only=('text', 'id_book', 'id_user')) \
        .load(data)

    comment = Comment(**posted_comment)

    session = Session()
    session.add(comment)
    session.commit()

    new_comment = CommentSchema().dump(comment)
    session.close()

    return {'info': 'Save comment in DB'}
Пример #8
0
def create_book_platform(data):
    data['publication_date'] = str(
        datetime.strptime(data['publication_date'], "%Y-%m-%d"))
    posted_book = BookSchema(only=('title', 'publication_date')) \
        .load(data)

    book = Book(**posted_book)

    session = Session()
    session.add(book)
    session.commit()

    new_book = BookSchema().dump(book)
    session.close()

    return {'info': 'Save book in DB'}
Пример #9
0
def authenticate(username, password):
    if not username:
        return None
    # fetching from the database
    session = Session()
    user_objects = session.query(User).filter_by(username=username).limit(1)

    schema = UserSchema(many=True)
    user = schema.dump(user_objects)
    session.close()
    if not user:
        return None
    user_internal = User(**user[0])
    if user_internal.check_password(password):
        flask_login.login_user(user_internal)
        return user[0]
Пример #10
0
def create_user_platform(data):
    posted_user = UserSchema(only=('username', 'password', 'first_name', 'last_name'))\
        .load(data)

    user = User(**posted_user)
    user.set_password(data['password'])

    session = Session()

    user_objects = session.query(User).filter_by(
        username=data['username']).limit(1)
    schema = UserSchema(many=True)
    user_old = schema.dump(user_objects)
    if user_old:
        return

    session.add(user)
    session.commit()

    new_user = UserSchema().dump(user)
    session.close()

    return {'info': 'Save user in DB'}
Пример #11
0
 def __init__(self):
     Base.metadata.create_all(engine)
     self.session = Session()