Exemple #1
0
def delete_message(message_id: int):
    session = db_session.create_session()
    message = session.query(Message).get(message_id)
    if not message:
        raise ClientError(msg="There is no such message")
    session.delete(message)
    session.commit()
Exemple #2
0
def get_user_by_id(user_id: int):
    session = db_session.create_session()
    user = session.query(User).get(user_id)
    session.close()
    if not user:
        raise IdError(msg="There is no such user")
    return user
def get_user_notes(cur_user_id):
    session = db_session.create_session()
    notes = session.query(Post).options(selectinload(Post.author)).filter(
        not_(Post.is_public) & (Post.author_id == cur_user_id)).order_by(
            Post.modified_date.desc()).all()
    session.close()
    return notes
Exemple #4
0
def get_user_by_nickname(nickname: str):
    session = db_session.create_session()
    user = session.query(User).filter(User.nickname == nickname).first()
    session.close()
    if not user:
        raise ClientError(msg="There is no such user")
    return user
def search_posts(form: PostSearchForm):
    session = db_session.create_session()
    text = "%" + form.text.data + "%"
    posts = session.query(Post).options(selectinload(Post.author)).filter(
        Post.is_public,
        (Post.topic.like(text) | Post.text.like(text))).order_by(
            Post.modified_date.desc()).all()
    return posts
def get_all_user_posts(user_id):
    session = db_session.create_session()
    posts = session.query(Post).options(selectinload(
        Post.author)).filter(Post.is_public
                             & (Post.author_id == user_id)).order_by(
                                 Post.modified_date.desc()).all()
    session.close()
    return posts
def get_comments(block_type, block_id):
    session = db_session.create_session()
    comments = session.query(Comment).options(selectinload(
        Comment.author)).filter((Comment.block_type == block_type)
                                & (Comment.block_id == block_id)).order_by(
                                    Comment.modified_date.desc()).all()
    session.close()
    return comments
Exemple #8
0
def get_all_user_messages(user_id: int):
    session = db_session.create_session()
    messages = session.query(Message).options(
        selectinload('*')).filter((Message.author_id == user_id) | (
            Message.addressee_id == user_id)).order_by(
                Message.modified_date.desc()).all()
    session.close()
    return messages
def get_block(block_type, block_id: int):
    session = db_session.create_session()
    if block_type == 'post':
        return session.query(Post).options(selectinload(
            Post.author)).get(block_id)
    elif block_type == 'comment':
        return get_comment_by_id(block_id)
    session.close()
Exemple #10
0
def edit_user(user_id: int, form, file):
    session = db_session.create_session()
    user = session.query(User).get(user_id)
    if form.nickname.data != user.nickname:
        nickname_check(form.nickname.data)
    user = user_add_data(user, form, file)
    session.merge(user)
    session.commit()
    session.close()
def delete_post(post_id: int):
    session = db_session.create_session()
    post = session.query(Post).get(post_id)
    if not post:
        raise IdError(msg="There is no such post")
    delete_all_comment('post', post.id)
    session.delete(post)
    session.commit()
    session.close()
Exemple #12
0
def add_user(form: RegisterForm, file):
    session = db_session.create_session()
    password_check(form.password.data, form.password_again.data)
    nickname_check(form.nickname.data)
    check_password_security(form.password.data)
    user = User()
    user = user_add_data(user, form, file)
    session.add(user)
    session.commit()
    session.close()
def append_post(form, user_id: int):
    session = db_session.create_session()
    try:
        post = Post()
        post = post_add_data(post, form, user_id)
        session.add(post)
        session.commit()
    except Exception:
        raise ClientError(msg='failed to add a post')
    session.close()
Exemple #14
0
def append_message(form, user_id: id):
    session = db_session.create_session()
    addressee = get_user_by_nickname(form.addressee.data)
    session.merge(addressee)
    try:
        message = Message()
        message = message_add_data(message, form, user_id, addressee.id)
        session.add(message)
        session.commit()
    except Exception:
        raise ClientError(msg='failed to add a message')
    session.close()
def delete_comment(comment_id: int):
    session = db_session.create_session()
    comment = session.query(Comment).get(comment_id)
    if not comment:
        raise IdError(msg="There is no such comment")
    if get_comments("comment", comment.id) == []:
        session.delete(comment)
    else:
        comment.is_delete = True
        session.merge(comment)
    session.commit()
    session.close()
Exemple #16
0
def edit_password(user_id: int, password_form):
    session = db_session.create_session()
    user = session.query(User).get(user_id)
    password_check(password_form.password.data,
                   password_form.password_again.data,
                   changing=True)
    if password_form.password.data == password_form.old_password.data:
        raise ClientError(msg="Old and new passwords mustn't match")
    check_password_security(password_form.password.data)
    user.set_password(password_form.password.data)
    session.merge(user)
    session.commit()
    session.close()
Exemple #17
0
def add_post():
    form = PostForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        post = Post()
        post.topic = form.topic.data
        post.text = form.text.data
        post.is_public = form.is_public.data
        current_user.posts.append(post)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('post.html', title='Публикация поста', form=form)
def add_comment(form: CommentForm, user_id: int, block_type, block_id: int):
    session = db_session.create_session()
    try:
        comment = Comment()
        comment.block_id = block_id
        comment.block_type = block_type
        comment.author_id = user_id
        comment.text = form.text.data
        session.add(comment)
        session.commit()
    except Exception:
        raise ClientError(msg='failed to add a comment')
    session.close()
Exemple #19
0
def login():
    login_form = LoginForm()
    if login_form.validate_on_submit():
        db = db_session.create_session()
        user = db.query(User).filter(
            User.email == login_form.email.data).first()
        if not user:
            return render_template('login.html',
                                   form=login_form,
                                   message="There is no such user")
        if user.check_password(login_form.password.data):
            login_user(user, remember=login_form.remember_me.data)
            return redirect(url_for('index'))
        else:
            return render_template('login.html',
                                   form=login_form,
                                   message="Wrong password")
    else:
        return render_template('login.html', form=login_form)
Exemple #20
0
def reqister():
    form = RegisterForm()
    if form.validate_on_submit():
        if form.password.data != form.password_again.data:
            return render_template('register.html',
                                   title='Registration',
                                   form=form,
                                   message="Passwords are different")
        db = db_session.create_session()
        if db.query(User).filter(User.email == form.email.data).first():
            return render_template('register.html',
                                   title='Registration',
                                   form=form,
                                   message="This email is already used")
        user = User(name=form.name.data, email=form.email.data)
        user.set_password(form.password.data)
        db.add(user)
        db.commit()
        return redirect('/login')
    return render_template('register.html', title='Registration', form=form)
Exemple #21
0
def add_message():
    form = MessageForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        addressee = session.query(User).filter(
            User.email == form.addressee.data).first()
        if addressee:
            message = Message()
            message.text = form.text.data
            message.author_id = current_user.id
            message.addressee_id = addressee.id
            session.add(message)
            session.commit()

        else:
            return render_template('message.html',
                                   title='Sending message',
                                   form=form,
                                   message="There is no such user")

        return redirect('/private')
    return render_template('message.html', title='Sending message', form=form)
Exemple #22
0
from sanansaattaja.db.data.models import User
from sanansaattaja.db.data import db_session

db_session.global_init("sanansaattaja.db")
db = db_session.create_session()

user = User()
user.surname = "Scott"
user.name = "Ridley"
user.age = 21
user.email = "*****@*****.**"
user.set_password('password')

user1 = User()
user1.surname = "Scott 1"
user1.name = "Ridley"
user1.age = 23
user1.email = "*****@*****.**"
user.set_password('password')

user2 = User()
user2.surname = "Scott 2"
user2.name = "Ridley"
user2.age = 24
user2.email = "*****@*****.**"
user.set_password('password3')

db.add(user)
db.add(user1)
db.add(user2)
Exemple #23
0
def get_users():
    session = db_session.create_session()
    users = session.query(User).all()
    session.close()
    return users
Exemple #24
0
def load_user(user_id):
    db = db_session.create_session()
    return db.query(User).get(user_id)
Exemple #25
0
def index():
    db = db_session.create_session()
    posts = db.query(Post).filter(Post.is_public == True).all()
    return render_template('main.html', posts=posts)
Exemple #26
0
def messages():
    db = db_session.create_session()
    messages = db.query(
        Message).filter((Message.author_id == current_user.id)
                        | (Message.addressee_id == current_user.id)).all()
    return render_template('private.html', messages=messages)
def get_comment_by_id(comment_id):
    session = db_session.create_session()
    comment = session.query(Comment).options(selectinload(
        Comment.author)).get(comment_id)
    session.close()
    return comment
def get_post_by_id(post_id):
    session = db_session.create_session()
    post = session.query(Post).options(selectinload(Post.author)).get(post_id)
    session.close()
    return post