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()
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
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
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()
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()
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()
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()
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()
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()
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)
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)
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)
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)
def get_users(): session = db_session.create_session() users = session.query(User).all() session.close() return users
def load_user(user_id): db = db_session.create_session() return db.query(User).get(user_id)
def index(): db = db_session.create_session() posts = db.query(Post).filter(Post.is_public == True).all() return render_template('main.html', posts=posts)
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