package handler import ( "context" "database/sql" "errors" "net/http" httpsrv "go.unistack.org/micro-server-http/v4" "git.unistack.org/unistack-org/pkgdash/internal/models" pb "git.unistack.org/unistack-org/pkgdash/proto" ) func (h *Handler) CommentsCreate(ctx context.Context, req *pb.CommentsCreateReq, rsp *pb.CommentsCreateRsp) error { logger := h.svc.Logger() logger.Debug(ctx, "Start AddComment") err := req.Validate() if err != nil { logger.Error(ctx, err) httpsrv.SetRspCode(ctx, http.StatusBadRequest) return httpsrv.SetError(NewValidationError(err)) } var com *models.Comment if com, err = h.store.CommentsCreate(ctx, req); err != nil { logger.Error(ctx, err) if errors.Is(err, sql.ErrNoRows) { httpsrv.SetRspCode(ctx, http.StatusNotFound) return httpsrv.SetError(NewNotFoundError(err)) } httpsrv.SetRspCode(ctx, http.StatusInternalServerError) return httpsrv.SetError(NewInternalError(err)) } rsp.Comment = models.NewComment(com) logger.Debug(ctx, "Success finish addComment") return nil }