package caps import ( "context" "encoding/json" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1" "git.dev.alexdunmow.com/block/pluginsdk/plugin" ) // reviewsStub implements plugin.ReviewSubmitter over the reviews.submit_review // capability call. type reviewsStub struct{ base } var _ plugin.ReviewSubmitter = (*reviewsStub)(nil) func (s *reviewsStub) SubmitReview(ctx context.Context, params plugin.SubmitReviewParams) (string, error) { req := &abiv1.ReviewsSubmitReviewRequest{ TableId: params.TableID.String(), RowId: params.RowID.String(), OverallRating: params.OverallRating, ReviewText: params.ReviewText, Photos: params.Photos, } if params.Ratings != nil { if raw, err := json.Marshal(params.Ratings); err == nil { req.RatingsJson = raw } } resp := &abiv1.ReviewsSubmitReviewResponse{} if err := s.invoke(ctx, "submit_review", req, resp); err != nil { return "", err } return resp.GetReviewId(), nil }