package logic import ( "lone-services/pkg/utils" "lone-services/pkg/validate" lonelog "lone-services/rpc/lonelog/pb" "reflect" jsoniter "github.com/json-iterator/go" ) type BaseLogic struct { } func (l *BaseLogic) checkParams(in interface{}, v validate.IValidator) *lonelog.Response { rv := reflect.ValueOf(in) if rv.Kind() != reflect.Ptr || rv.IsNil() { return &lonelog.Response{ Code: utils.ErrorParams.Code, Msg: "request must be non‑nil proto pointer", } } resp := validate.ValidateFromProto(in, v) if resp != utils.StringEmpty { return &lonelog.Response{ Code: utils.ErrorParams.Code, Msg: resp, } } return nil } func (l *BaseLogic) fail(status utils.Status) (*lonelog.Response, error) { return l.out(status, status.Msg) } func (l *BaseLogic) out(status utils.Status, msg string) (*lonelog.Response, error) { return &lonelog.Response{Code: status.Code, Msg: msg}, nil } func (l *BaseLogic) ok(data any) (*lonelog.Response, error) { buf, _ := jsoniter.Marshal(data) return &lonelog.Response{Code: utils.Ok.Code, Msg: utils.Ok.Msg, Data: string(buf)}, nil }