42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
// Code generated by go-omni api. DO NOT EDIT.
|
|
package handler
|
|
|
|
import (
|
|
"encoding/json"
|
|
omnierrors "git.yuntuo.hk/k2safe/go-omni/errors"
|
|
"git.yuntuo.hk/k2safe/go-omni/response"
|
|
"strings"
|
|
)
|
|
|
|
var responseTemplates = map[string]response.Encoder{"": response.Default(),
|
|
"CommonResponse": newResponseTemplate("{\"body\":null,\"errorBody\":null,\"messageField\":\"msg\",\"requestIdField\":\"-\",\"codeType\":\"int32\",\"successCode\":0,\"errorCode\":9999,\"dataMode\":\"always\"}"),
|
|
"AlternateResponse": newResponseTemplate("{\"body\":null,\"errorBody\":null,\"messageField\":\"detail\",\"requestIdField\":\"-\",\"codeType\":\"int32\",\"successCode\":0,\"errorCode\":9999,\"dataMode\":\"always\"}"),
|
|
}
|
|
|
|
func newResponseTemplate(raw string) *response.Formatter {
|
|
var cfg response.Config
|
|
decoder := json.NewDecoder(strings.NewReader(raw))
|
|
decoder.UseNumber()
|
|
if err := decoder.Decode(&cfg); err != nil {
|
|
panic(err)
|
|
}
|
|
return response.MustNew(cfg)
|
|
}
|
|
func responseEncoder(name string, raw bool, catalogJSON string) response.Encoder {
|
|
encoder := responseTemplates[name]
|
|
if encoder == nil {
|
|
panic("unknown response template")
|
|
}
|
|
var catalog omnierrors.Catalog
|
|
if err := json.Unmarshal([]byte(catalogJSON), &catalog); err != nil {
|
|
panic(err)
|
|
}
|
|
if len(catalog.Definitions) > 0 {
|
|
encoder = response.MustWithErrors(catalog, encoder)
|
|
}
|
|
if raw {
|
|
encoder = response.RawJSON(encoder)
|
|
}
|
|
return encoder
|
|
}
|