/
client_option.go
110 lines (103 loc) · 2.91 KB
/
client_option.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package impl
import (
"context"
"go.uber.org/zap"
"github.com/go-sonic/sonic/cache"
"github.com/go-sonic/sonic/config"
"github.com/go-sonic/sonic/event"
"github.com/go-sonic/sonic/model/dto"
"github.com/go-sonic/sonic/model/property"
"github.com/go-sonic/sonic/service"
)
type clientOptionServiceImpl struct {
service.OptionService
Cache cache.Cache
Config *config.Config
Event event.Bus
Logger *zap.Logger
PrivateOption map[string]struct{}
}
func NewClientOptionService(config *config.Config, cache cache.Cache, event event.Bus, logger *zap.Logger, optionService service.OptionService) service.ClientOptionService {
co := &clientOptionServiceImpl{
Cache: cache,
Config: config,
Event: event,
Logger: logger,
OptionService: optionService,
}
co.PrivateOption = co.getPrivateOption()
return co
}
func (c *clientOptionServiceImpl) ListAllOption(ctx context.Context) ([]*dto.Option, error) {
options, err := c.OptionService.ListAllOption(ctx)
if err != nil {
return nil, err
}
result := make([]*dto.Option, 0)
for _, option := range options {
if _, ok := c.PrivateOption[option.Key]; !ok {
result = append(result, option)
}
}
return result, nil
}
func (c *clientOptionServiceImpl) getPrivateOption() map[string]struct{} {
privateOption := make(map[string]struct{})
privateProperty := []property.Property{
property.EmailProtocol,
property.EmailSSLPort,
property.EmailUsername,
property.EmailPassword,
property.EmailFromName,
property.APIAccessKey,
property.MinioEndpoint,
property.MinioBucketName,
property.MinioAccessKey,
property.MinioAccessSecret,
property.MinioProtocol,
property.MinioSource,
property.MinioRegion,
property.MinioFrontBase,
property.AliOssEndpoint,
property.AliOssBucketName,
property.AliOssAccessKey,
property.AliOssDomain,
property.AliOssProtocol,
property.AliOssAccessSecret,
property.HuaweiOssDomain,
property.HuaweiOssEndpoint,
property.HuaweiOssBucketName,
property.HuaweiOssAccessKey,
property.HuaweiOssAccessSecret,
property.QiniuOssAccessKey,
property.QiniuOssAccessSecret,
property.QiniuOssDomain,
property.QiniuOssBucket,
property.QiniuDomainProtocol,
property.QiniuOssStyleRule,
property.QiniuOssThumbnailStyleRule,
property.QiniuOssZone,
property.TencentCosDomain,
property.TencentCosProtocol,
property.TencentCosRegion,
property.TencentCosBucketName,
property.TencentCosSecretID,
property.TencentCosSecretKey,
property.TencentCosSource,
property.TencentCosStyleRule,
property.TencentCosThumbnailStyleRule,
property.UpOssSource,
property.UpOssPassword,
property.UpOssBucket,
property.UpOssDomain,
property.UpOssProtocol,
property.UpOssOperator,
property.UpOssStyleRule,
property.UpOssThumbnailStyleRule,
property.JWTSecret,
}
for _, p := range privateProperty {
privateOption[p.KeyValue] = struct{}{}
}
return privateOption
}