package handler import ( "context" "database/sql" "errors" "net/http" httpsrv "go.unistack.org/micro-server-http/v3" "go.unistack.org/pkgdash/internal/models" pb "go.unistack.org/pkgdash/proto" ) func (h *Handler) CommentCreate(ctx context.Context, req *pb.CommentCreateReq, rsp *pb.CommentCreateRsp) error { h.logger.Debug(ctx, "Start AddComment") err := req.Validate() if err != nil { h.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)) } h.logger.Error(ctx, "comment create error", err) httpsrv.SetRspCode(ctx, http.StatusInternalServerError) return httpsrv.SetError(NewInternalError(err)) } rsp.Comment = models.NewComment(com) h.logger.Debug(ctx, "Success finish addComment") return nil }