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