forked from glennliao/apijson-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.go
47 lines (41 loc) · 1.02 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package config
import (
"context"
"github.com/glennliao/apijson-go/config"
"github.com/gogf/gf/v2/util/gconv"
)
func RequestListProvider(ctx context.Context, jsonStr string) config.RequestListProvider {
return func(ctx context.Context) []config.RequestConfig {
var requestList []config.RequestConfig
err := gconv.Scan(jsonStr, &requestList)
if err != nil {
panic(err)
}
for i, request := range requestList {
if _, ok := request.Structure[request.Tag]; !ok {
requestList[i].Structure = map[string]*config.Structure{
request.Tag: {
Must: nil,
Refuse: nil,
Unique: nil,
Insert: nil,
Update: nil,
Replace: nil,
Remove: nil,
},
}
}
}
return requestList
}
}
func AccessListProvider(ctx context.Context, jsonStr string) config.AccessListProvider {
return func(ctx context.Context) []config.AccessConfig {
var accessList []config.AccessConfig
err := gconv.Scan(jsonStr, &accessList)
if err != nil {
panic(err)
}
return accessList
}
}