You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openim-sdk-cpp/go/chao-sdk-core/pkg/common/check.go

148 lines
4.3 KiB

// Copyright © 2023 OpenIM SDK. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package common
import (
"encoding/json"
"github.com/openimsdk/openim-sdk-core/v3/open_im_sdk_callback"
"github.com/openimsdk/openim-sdk-core/v3/pkg/sdkerrs"
"github.com/openimsdk/openim-sdk-core/v3/pkg/utils"
"runtime"
)
//var validate *validator.Validate
//funcation init() {
// validate = validator.New()
//}
func CheckAnyErrCallback(callback open_im_sdk_callback.Base, errCode int32, err error, operationID string) {
if err != nil {
errInfo := "operationID[" + operationID + "], " + "info[" + err.Error() + "]"
//log.NewError(operationID, "checkErr ", errInfo)
callback.OnError(errCode, errInfo)
runtime.Goexit()
}
}
func CheckConfigErrCallback(callback open_im_sdk_callback.Base, err error, operationID string) {
CheckAnyErrCallback(callback, sdkerrs.ArgsError, err, operationID)
}
//func CheckTokenErrCallback(callback open_im_sdk_callback.Base, err error, operationID string) {
// CheckAnyErrCallback(callback, sdkerrs.TokenInvalidError, err, operationID)
//}
func CheckDBErrCallback(callback open_im_sdk_callback.Base, err error, operationID string) {
CheckAnyErrCallback(callback, sdkerrs.SdkInternalError, err, operationID)
}
func CheckDataErrCallback(callback open_im_sdk_callback.Base, err error, operationID string) {
CheckAnyErrCallback(callback, sdkerrs.SdkInternalError, err, operationID)
}
func CheckArgsErrCallback(callback open_im_sdk_callback.Base, err error, operationID string) {
CheckAnyErrCallback(callback, sdkerrs.ArgsError, err, operationID)
}
//
//funcation CheckErrAndResp2(err error, resp []byte, output interface{}) error {
// if err != nil {
// return utils.Wrap(err, "api resp failed")
// }
// var c server_api_params.CommDataResp
// err = json.Unmarshal(resp, &c)
// if err == nil {
// if c.ErrCode != 0 {
// return utils.Wrap(errors.New(c.ErrMsg), "")
// }
// if output != nil {
// err = mapstructure.Decode(c.Data, output)
// if err != nil {
// goto one
// }
// return nil
// }
// return nil
// }
//
// unMarshaler := jsonpb.Unmarshaler{}
// unMarshaler.Unmarshal()
// s, _ := marshaler.MarshalToString(pb)
// out := make(map[string]interface{})
// json.Unmarshal([]byte(s), &out)
// if idFix {
// if _, ok := out["id"]; ok {
// out["_id"] = out["id"]
// delete(out, "id")
// }
// }
// return out
//
//one:
// var c2 server_api_params.CommDataRespOne
//
// err = json.Unmarshal(resp, &c2)
// if err != nil {
// return utils.Wrap(err, "")
// }
// if c2.ErrCode != 0 {
// return utils.Wrap(errors.New(c2.ErrMsg), "")
// }
// if output != nil {
// err = mapstructure.Decode(c2.Data, output)
// if err != nil {
// return utils.Wrap(err, "")
// }
// return nil
// }
// return nil
//}
func JsonUnmarshalAndArgsValidate(s string, args interface{}, callback open_im_sdk_callback.Base, operationID string) error {
err := json.Unmarshal([]byte(s), args)
if err != nil {
if callback != nil {
//log.NewError(operationID, "Unmarshal failed ", err.Error(), s)
callback.OnError(sdkerrs.ArgsError, err.Error())
runtime.Goexit()
} else {
return utils.Wrap(err, "json Unmarshal failed")
}
}
//err = validate.Struct(args)
//if err != nil {
// if callback != nil {
// log.NewError(operationID, "validate failed ", err.Error(), s)
// callback.OnError(constant.ErrArgs.ErrCode, constant.ErrArgs.ErrMsg)
// runtime.Goexit()
// }
//}
//return utils.Wrap(err, "args check failed")
return nil
}
func JsonUnmarshalCallback(s string, args interface{}, callback open_im_sdk_callback.Base, operationID string) error {
err := json.Unmarshal([]byte(s), args)
if err != nil {
if callback != nil {
//log.NewError(operationID, "Unmarshal failed ", err.Error(), s)
callback.OnError(sdkerrs.ArgsError, err.Error())
runtime.Goexit()
} else {
return utils.Wrap(err, "json Unmarshal failed")
}
}
return nil
}