gallery.accords-library.com/server/szurubooru/func/comments.py

36 lines
1.1 KiB
Python
Raw Normal View History

2016-04-24 07:50:11 +00:00
import datetime
from szurubooru import db, errors
from szurubooru.func import users, posts
class CommentNotFoundError(errors.NotFoundError): pass
class EmptyCommentTextError(errors.ValidationError): pass
def serialize_comment(comment, authenticated_user):
return {
'id': comment.comment_id,
'user': users.serialize_user(comment.user, authenticated_user),
'post': posts.serialize_post(comment.post, authenticated_user),
'text': comment.text,
'creationTime': comment.creation_time,
'lastEditTime': comment.last_edit_time,
}
2016-04-24 08:13:22 +00:00
def get_comment_by_id(comment_id):
return db.session \
.query(db.Comment) \
.filter(db.Comment.comment_id == comment_id) \
.one_or_none()
2016-04-24 07:50:11 +00:00
def create_comment(user, post, text):
comment = db.Comment()
comment.user = user
comment.post = post
update_comment_text(comment, text)
comment.creation_time = datetime.datetime.now()
return comment
def update_comment_text(comment, text):
if not text:
raise EmptyCommentTextError('Comment text cannot be empty.')
comment.text = text