summaryrefslogtreecommitdiff
path: root/src/services/create_comment_service.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/create_comment_service.py')
-rw-r--r--src/services/create_comment_service.py32
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