46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package logic
|
||
|
||
import (
|
||
"admin/admin"
|
||
"encoding/json"
|
||
"reflect"
|
||
|
||
"pkg.local/utils"
|
||
validateService "pkg.local/validate"
|
||
)
|
||
|
||
type BaseLogic struct {
|
||
}
|
||
|
||
func (l *BaseLogic) checkParams(in interface{}, v validateService.IValidator) *admin.Response {
|
||
rv := reflect.ValueOf(in)
|
||
if rv.Kind() != reflect.Ptr || rv.IsNil() {
|
||
return &admin.Response{
|
||
Code: utils.ErrorParams.Code,
|
||
Msg: "request must be non‑nil proto pointer",
|
||
}
|
||
}
|
||
|
||
resp := validateService.ValidateFromProto(in, v)
|
||
if resp != utils.StringEmpty {
|
||
return &admin.Response{
|
||
Code: utils.ErrorParams.Code,
|
||
Msg: resp,
|
||
}
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func (l *BaseLogic) fail(status utils.Status) *admin.Response {
|
||
return &admin.Response{Code: status.Code, Msg: status.Msg}
|
||
}
|
||
|
||
func (l *BaseLogic) out(status utils.Status, msg string) *admin.Response {
|
||
return &admin.Response{Code: status.Code, Msg: msg}
|
||
}
|
||
|
||
func (l *BaseLogic) ok(data any) *admin.Response {
|
||
buf, _ := json.Marshal(data)
|
||
return &admin.Response{Code: utils.Ok.Code, Msg: utils.Ok.Msg, Data: string(buf)}
|
||
}
|