59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package common
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
|
|
"github.com/gogf/gf/v2/errors/gcode"
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
|
|
"github.com/qianfree/team-api/internal/consts"
|
|
)
|
|
|
|
// NewBusinessError creates a business error with code and message.
|
|
func NewBusinessError(code int, message string) error {
|
|
return gerror.NewCode(gcode.New(code, message, nil), message)
|
|
}
|
|
|
|
// NewNotFoundError creates a 404 Not Found error.
|
|
func NewNotFoundError(resource string) error {
|
|
return gerror.NewCode(
|
|
gcode.New(consts.CodeNotFound, resource+"不存在", nil),
|
|
resource+"不存在",
|
|
)
|
|
}
|
|
|
|
// NewForbiddenError creates a 403 Forbidden error.
|
|
func NewForbiddenError(message string) error {
|
|
return gerror.NewCode(
|
|
gcode.New(consts.CodeForbidden, message, nil),
|
|
message,
|
|
)
|
|
}
|
|
|
|
// NewBadRequestError creates a 400 Bad Request error.
|
|
func NewBadRequestError(message string) error {
|
|
return gerror.NewCode(
|
|
gcode.New(consts.CodeBadRequest, message, nil),
|
|
message,
|
|
)
|
|
}
|
|
|
|
// NewUnauthorizedError creates a 401 Unauthorized error.
|
|
func NewUnauthorizedError(message string) error {
|
|
return gerror.NewCode(
|
|
gcode.New(consts.CodeUnauthorized, message, nil),
|
|
message,
|
|
)
|
|
}
|
|
|
|
// IgnoreScanNoRows normalizes sql.ErrNoRows to nil.
|
|
// GoFrame's Scan(&struct) returns sql.ErrNoRows when no record is found,
|
|
// but callers typically check the zero-value result afterwards.
|
|
func IgnoreScanNoRows(err error) error {
|
|
if err != nil && errors.Is(err, sql.ErrNoRows) {
|
|
return nil
|
|
}
|
|
return err
|
|
}
|