feat: init
This commit is contained in:
@@ -1,31 +1,116 @@
|
||||
package errorx
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"runtime"
|
||||
|
||||
"github.com/go-jet/jet/v2/qrm"
|
||||
"github.com/gofiber/fiber/v3"
|
||||
"github.com/gofiber/fiber/v3/binder"
|
||||
"github.com/gofiber/utils/v2"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func Middleware(c fiber.Ctx) error {
|
||||
err := c.Next()
|
||||
if err != nil {
|
||||
return Wrap(err).Response(c)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
StatusCode int `json:"-"`
|
||||
Code int `json:"code"`
|
||||
Message string `json:"message"`
|
||||
isFormat bool
|
||||
err error
|
||||
params []any
|
||||
sql string
|
||||
file string
|
||||
|
||||
StatusCode int `json:"-" xml:"-"`
|
||||
Code int `json:"code" xml:"code"`
|
||||
Message string `json:"message" xml:"message"`
|
||||
}
|
||||
|
||||
func Wrap(err error) Response {
|
||||
return Response{http.StatusInternalServerError, http.StatusInternalServerError, err.Error()}
|
||||
func New(code, statusCode int, message string) *Response {
|
||||
return &Response{
|
||||
isFormat: true,
|
||||
StatusCode: statusCode,
|
||||
Code: code,
|
||||
Message: message,
|
||||
}
|
||||
}
|
||||
|
||||
func (r Response) Error() string {
|
||||
func (r *Response) Sql(sql string) *Response {
|
||||
r.sql = sql
|
||||
return r
|
||||
}
|
||||
|
||||
func (r *Response) Params(params ...any) *Response {
|
||||
r.params = params
|
||||
if _, file, line, ok := runtime.Caller(1); ok {
|
||||
r.file = fmt.Sprintf("%s:%d", file, line)
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
func Wrap(err error) *Response {
|
||||
if e, ok := err.(*Response); ok {
|
||||
return e
|
||||
}
|
||||
return &Response{err: err}
|
||||
}
|
||||
|
||||
func (r *Response) format() {
|
||||
r.isFormat = true
|
||||
if errors.Is(r.err, qrm.ErrNoRows) {
|
||||
r.Code = RecordNotExists.Code
|
||||
r.Message = RecordNotExists.Message
|
||||
r.StatusCode = RecordNotExists.StatusCode
|
||||
return
|
||||
}
|
||||
|
||||
if e, ok := r.err.(*fiber.Error); ok {
|
||||
r.Code = e.Code
|
||||
r.Message = e.Message
|
||||
r.StatusCode = e.Code
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Response) Error() string {
|
||||
if !r.isFormat {
|
||||
r.format()
|
||||
}
|
||||
|
||||
return fmt.Sprintf("[%d] %s", r.Code, r.Message)
|
||||
}
|
||||
|
||||
func (r Response) Response(ctx fiber.Ctx) error {
|
||||
return ctx.Status(r.StatusCode).JSON(r)
|
||||
func (r *Response) Response(ctx fiber.Ctx) error {
|
||||
if !r.isFormat {
|
||||
r.format()
|
||||
}
|
||||
|
||||
contentType := utils.ToLower(utils.UnsafeString(ctx.Context().Request.Header.ContentType()))
|
||||
contentType = binder.FilterFlags(utils.ParseVendorSpecificContentType(contentType))
|
||||
|
||||
log.WithError(r.err).WithField("file", r.file).WithField("params", r.params).Errorf("response error: %+v", r)
|
||||
|
||||
// Parse body accordingly
|
||||
switch contentType {
|
||||
case fiber.MIMETextXML, fiber.MIMEApplicationXML:
|
||||
return ctx.Status(r.StatusCode).XML(r)
|
||||
case fiber.MIMETextHTML, fiber.MIMETextPlain:
|
||||
return ctx.Status(r.StatusCode).SendString(r.Message)
|
||||
default:
|
||||
return ctx.Status(r.StatusCode).JSON(r.Message)
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
RequestParseError = Response{http.StatusBadRequest, http.StatusBadRequest, "请求解析错误"}
|
||||
InternalError = Response{http.StatusInternalServerError, http.StatusInternalServerError, "内部错误"}
|
||||
RecordNotExists = New(http.StatusNotFound, http.StatusNotFound, "记录不存在")
|
||||
BadRequest = New(http.StatusBadRequest, http.StatusBadRequest, "请求错误")
|
||||
Unauthorized = New(http.StatusUnauthorized, http.StatusUnauthorized, "未授权")
|
||||
InternalErr = New(http.StatusInternalServerError, http.StatusInternalServerError, "内部错误")
|
||||
)
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package middlewares
|
||||
|
||||
import (
|
||||
"{{.ModuleName}}/app/errorx"
|
||||
|
||||
"github.com/gofiber/fiber/v3"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func (f *Middlewares) ProcessResponse(c fiber.Ctx) error {
|
||||
err := c.Next()
|
||||
if err != nil {
|
||||
log.WithError(err).Error("process response error")
|
||||
|
||||
if e, ok := err.(errorx.Response); ok {
|
||||
return e.Response(c)
|
||||
}
|
||||
|
||||
if e, ok := err.(*fiber.Error); ok {
|
||||
return errorx.Response{
|
||||
StatusCode: e.Code,
|
||||
Code: e.Code,
|
||||
Message: e.Message,
|
||||
}.Response(c)
|
||||
}
|
||||
|
||||
return errorx.Wrap(err).Response(c)
|
||||
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -51,16 +51,16 @@ func Func3[P1 any, P2 any, P3 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3)
|
||||
}
|
||||
@@ -76,22 +76,22 @@ func Func4[P1 any, P2 any, P3 any, P4 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
return f(ctx, p1, p2, p3, p4)
|
||||
@@ -109,23 +109,23 @@ func Func5[P1 any, P2 any, P3 any, P4 any, P5 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5)
|
||||
}
|
||||
@@ -143,27 +143,27 @@ func Func6[P1 any, P2 any, P3 any, P4 any, P5 any, P6 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5, p6)
|
||||
}
|
||||
@@ -182,31 +182,31 @@ func Func7[P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5, p6, p7)
|
||||
}
|
||||
@@ -226,35 +226,35 @@ func Func8[P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P8 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5, p6, p7, p8)
|
||||
}
|
||||
@@ -275,39 +275,39 @@ func Func9[P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P8 any, P9 an
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p9, err := pf9(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5, p6, p7, p8, p9)
|
||||
}
|
||||
@@ -329,45 +329,44 @@ func Func10[P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P8 any, P9 a
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p9, err := pf9(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p10, err := pf10(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return f(ctx, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ func DataFunc[T any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
data, err := f(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -23,12 +23,12 @@ func DataFunc1[T any, P1 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
data, err := f(ctx, p)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -42,15 +42,15 @@ func DataFunc2[T any, P1 any, P2 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -65,19 +65,19 @@ func DataFunc3[T any, P1 any, P2 any, P3 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -93,23 +93,23 @@ func DataFunc4[T any, P1 any, P2 any, P3 any, P4 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -126,27 +126,27 @@ func DataFunc5[T any, P1 any, P2 any, P3 any, P4 any, P5 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -164,31 +164,31 @@ func DataFunc6[T any, P1 any, P2 any, P3 any, P4 any, P5 any, P6 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5, p6)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -207,35 +207,35 @@ func DataFunc7[T any, P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any](
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5, p6, p7)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -255,39 +255,39 @@ func DataFunc8[T any, P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P8
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5, p6, p7, p8)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -308,43 +308,43 @@ func DataFunc9[T any, P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P8
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p9, err := pf9(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5, p6, p7, p8, p9)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
@@ -366,47 +366,47 @@ func DataFunc10[T any, P1 any, P2 any, P3 any, P4 any, P5 any, P6 any, P7 any, P
|
||||
return func(ctx fiber.Ctx) error {
|
||||
p1, err := pf1(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p2, err := pf2(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p3, err := pf3(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p4, err := pf4(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p5, err := pf5(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p6, err := pf6(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p7, err := pf7(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p8, err := pf8(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p9, err := pf9(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
p10, err := pf10(ctx)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
data, err := f(ctx, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
|
||||
if err != nil {
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
return ctx.JSON(data)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"{{.ModuleName}}/app/errorx"
|
||||
_ "{{.ModuleName}}/docs"
|
||||
"{{.ModuleName}}/pkg/service"
|
||||
"{{.ModuleName}}/providers/app"
|
||||
@@ -48,18 +49,19 @@ type Http struct {
|
||||
|
||||
func Serve(cmd *cobra.Command, args []string) error {
|
||||
return container.Container.Invoke(func(http Http) error {
|
||||
log.SetFormatter(&log.JSONFormatter{})
|
||||
|
||||
if http.App.Mode == app.AppModeDevelopment {
|
||||
log.SetLevel(log.DebugLevel)
|
||||
|
||||
http.Service.Engine.Get("/swagger/*", swagger.HandlerDefault)
|
||||
}
|
||||
|
||||
http.Service.Engine.Use(errorx.Middleware)
|
||||
http.Service.Engine.Use(favicon.New(favicon.Config{
|
||||
Data: []byte{},
|
||||
}))
|
||||
|
||||
group := http.Service.Engine.Group("/v1")
|
||||
|
||||
group := http.Service.Engine.Group("")
|
||||
for _, route := range http.Routes {
|
||||
route.Register(group)
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ func Provide(opts ...opt.Option) error {
|
||||
engine.Use(recover.New(recover.Config{
|
||||
EnableStackTrace: true,
|
||||
StackTraceHandler: func(c fiber.Ctx, e any) {
|
||||
log.WithError(e.(error)).Error(fmt.Sprintf("panic: %v\n%s\n", e, debug.Stack()))
|
||||
log.Error(fmt.Sprintf("panic: %v\n%s\n", e, debug.Stack()))
|
||||
},
|
||||
}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user