def get(self, filters: Optional[Dict]) -> Iterable[Post]: data = PostDocument.objects(**filters) # data = self.posts.find(filters) return [ Post(post.id, post.text, post.timestamp, post.created, post.author_id) for post in data ]
def save(self, post: Post): post_doc = PostDocument.objects(id=post.id).first() if not post_doc: data = post.to_dict() data.pop('id') post_doc = PostDocument(**data) likes = [LikeDoc(**like.to_dict()) for like in post.likes] post_doc.likes.append(*likes) post_doc.save()