diff options
Diffstat (limited to 'src/services/create_comment_service.py')
-rw-r--r-- | src/services/create_comment_service.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/services/create_comment_service.py b/src/services/create_comment_service.py new file mode 100644 index 0000000..b995b25 --- /dev/null +++ b/src/services/create_comment_service.py @@ -0,0 +1,32 @@ +from sqlalchemy import select +from src.database.models import Blog, Comment +from src.database import db + + +class CreateCommentService: + def __init__(self, comment_data, post): + self._post = post + self._domain = comment_data.get('domain') + self._content = comment_data.get('content') + self._email = comment_data.get('email') + self._author = comment_data.get('author') + self._blog_id = self._get_blog_id() + + def _get_blog_id(self): + search_blog_statement = select(Blog.id).where( + Blog.domain == self._domain + ) + + return db.session.execute(search_blog_statement).scalars().first() + + def call(self): + if self._blog_id is None: + return 404 + + comment = Comment(blog_id=self._blog_id, content=self._content, + email=self._email, author=self._author, + post=self._post, language='en') + db.session.add(comment) + db.session.commit() + + return 200 |