Как мне настроить PersistedModel в loopback?Допустим, у меня есть две модели Post и Comment.Сообщение имеет много комментариев, но может содержать не более 3 комментариев.Как я могу реализовать это без , используя хуки?Также мне нужно сделать это внутри транзакции .
Я приехал из Явы, и вот как я это сделал бы:
class Post {
void addComment(Comment c) {
if(this.comments.size() < 3)
this.comments.add(c)
else
throw new DomainException("Comment count exceeded")
}
}
тогда я бы написал услугу ...
class PostService {
@Transactional
public void addCommentToPost(postId, Comment comment) {
post = this.postRepository.findById(postId);
post.addComment(comment)
this.postRepository.save(post);
}
}
Я знаюя мог бы написать что-то вроде:
module.exports = function(app) {
app.datasources.myds.transaction(async (models) => {
post = await models.Post.findById(postId)
post.comments.create(commentData); ???? how do i restrict comments array size ?
})
}
я хочу иметь возможность использовать это так:
// create post
POST /post --> HTTP 201
// add comments
POST /post/id/comments --> HTTP 201
POST /post/id/comments --> HTTP 201
POST /post/id/comments --> HTTP 201
// should fail
POST /post/id/comments --> HTTP 4XX ERROR