12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package tr
-
- import (
- "runtime"
-
- "github.com/sirupsen/logrus"
- "github.com/wpajqz/linker"
- )
-
- type Checker interface {
- Check() error
- }
-
- func ParseParamFail(ctx linker.Context, param interface{}, fs ...func() error) bool {
- if param != nil {
- if Fail(ctx, linker.StatusBadRequest, ctx.ParseParam(param)) {
- return true
- }
-
- if checker, ok := param.(Checker); ok {
- return Fail(ctx, linker.StatusBadRequest, checker.Check())
- }
- }
-
- for _, f := range fs {
- if Fail(ctx, linker.StatusBadRequest, f()) {
- return true
- }
- }
-
- return false
- }
-
- func Fail(ctx linker.Context, status int, err error) bool {
- if err == nil {
- return false
- }
-
- ctx.Error(status, err.Error())
-
- if status == linker.StatusInternalServerError {
- _, file, line, _ := runtime.Caller(1)
- logrus.WithField("err", err).Errorf("file:%s line:%d", file, line)
- }
-
- return true
- }
-
- func Success(ctx linker.Context, data interface{}) {
- ctx.Success(data)
- }
|