74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package mcpTool
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
"strconv"
|
|
|
|
"git.echol.cn/loser/Go-Web-Template/server/model/system"
|
|
"git.echol.cn/loser/Go-Web-Template/server/utils"
|
|
)
|
|
|
|
type exportedDictionary struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Status *bool `json:"status"`
|
|
Desc string `json:"desc"`
|
|
SysDictionaryDetails []system.SysDictionaryDetail `json:"sysDictionaryDetails"`
|
|
}
|
|
|
|
func fetchDictionaryList(ctx context.Context, keyword string) ([]system.SysDictionary, error) {
|
|
query := url.Values{}
|
|
if keyword != "" {
|
|
query.Set("name", keyword)
|
|
}
|
|
|
|
resp, err := getUpstream[[]system.SysDictionary](ctx, "/sysDictionary/getSysDictionaryList", query)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.Data, nil
|
|
}
|
|
|
|
func findDictionaryByType(ctx context.Context, dictType string) (*system.SysDictionary, error) {
|
|
dictionaries, err := fetchDictionaryList(ctx, dictType)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
for _, dictionary := range dictionaries {
|
|
if dictionary.Type == dictType {
|
|
dict := dictionary
|
|
return &dict, nil
|
|
}
|
|
}
|
|
|
|
return nil, nil
|
|
}
|
|
|
|
func exportDictionary(ctx context.Context, id uint) (*exportedDictionary, error) {
|
|
query := url.Values{}
|
|
query.Set("id", strconv.FormatUint(uint64(id), 10))
|
|
|
|
resp, err := getUpstream[exportedDictionary](ctx, "/sysDictionary/exportSysDictionary", query)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &resp.Data, nil
|
|
}
|
|
|
|
func createDictionary(ctx context.Context, dictionary system.SysDictionary) error {
|
|
_, err := postUpstream[map[string]any](ctx, "/sysDictionary/createSysDictionary", dictionary)
|
|
return err
|
|
}
|
|
|
|
func createDictionaryDetail(ctx context.Context, detail system.SysDictionaryDetail) error {
|
|
_, err := postUpstream[map[string]any](ctx, "/sysDictionaryDetail/createSysDictionaryDetail", detail)
|
|
return err
|
|
}
|
|
|
|
func enabledBoolPointer() *bool {
|
|
return utils.Pointer(true)
|
|
}
|