MCPcopy Create free account
hub / github.com/bytebase/bytebase / convertToSettingMessage

Function convertToSettingMessage

backend/api/v1/setting_service_converter.go:15–140  ·  view source on GitHub ↗
(setting *store.SettingMessage)

Source from the content-addressed store, hash-verified

13)
14
15func convertToSettingMessage(setting *store.SettingMessage) (*v1pb.Setting, error) {
16 settingName := fmt.Sprintf("%s%s", common.SettingNamePrefix, convertStoreSettingNameToV1(setting.Name).String())
17 switch setting.Name {
18 case storepb.SettingName_APP_IM:
19 storeValue, ok := setting.Value.(*storepb.AppIMSetting)
20 if !ok {
21 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("invalid setting value type for %s", setting.Name))
22 }
23 v1Value := convertToAppIMSetting(storeValue)
24 return &v1pb.Setting{
25 Name: settingName,
26 Value: &v1pb.SettingValue{
27 Value: &v1pb.SettingValue_AppIm{
28 AppIm: v1Value,
29 },
30 },
31 }, nil
32 case storepb.SettingName_WORKSPACE_PROFILE:
33 storeValue, ok := setting.Value.(*storepb.WorkspaceProfileSetting)
34 if !ok {
35 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("invalid setting value type for %s", setting.Name))
36 }
37 v1Value := convertToWorkspaceProfileSetting(storeValue)
38 return &v1pb.Setting{
39 Name: settingName,
40 Value: &v1pb.SettingValue{
41 Value: &v1pb.SettingValue_WorkspaceProfile{
42 WorkspaceProfile: v1Value,
43 },
44 },
45 }, nil
46 case storepb.SettingName_WORKSPACE_APPROVAL:
47 storeValue, ok := setting.Value.(*storepb.WorkspaceApprovalSetting)
48 if !ok {
49 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("invalid setting value type for %s", setting.Name))
50 }
51 v1Value := &v1pb.WorkspaceApprovalSetting{}
52 for _, rule := range storeValue.Rules {
53 if rule.Source == storepb.WorkspaceApprovalSetting_Rule_EXPORT_DATA { //nolint:staticcheck // Keep filtering legacy store rules from the public API.
54 continue
55 }
56 template := convertToApprovalTemplate(rule.Template)
57 v1Value.Rules = append(v1Value.Rules, &v1pb.WorkspaceApprovalSetting_Rule{
58 Source: v1pb.WorkspaceApprovalSetting_Rule_Source(rule.Source),
59 Condition: rule.Condition,
60 Template: template,
61 })
62 }
63 return &v1pb.Setting{
64 Name: settingName,
65 Value: &v1pb.SettingValue{
66 Value: &v1pb.SettingValue_WorkspaceApproval{
67 WorkspaceApproval: v1Value,
68 },
69 },
70 }, nil
71 case storepb.SettingName_DATA_CLASSIFICATION:
72 storeValue, ok := setting.Value.(*storepb.DataClassificationSetting)

Callers 3

ListSettingsMethod · 0.85
GetSettingMethod · 0.85
UpdateSettingMethod · 0.85

Calls 11

convertToAppIMSettingFunction · 0.85
convertToAISettingFunction · 0.85
convertToEmailSettingFunction · 0.85
ErrorfMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected