@@ -2,6 +2,7 @@ package certificate
22
33import (
44 "net/http"
5+ "strings"
56
67 "github.com/0xJacky/Nginx-UI/internal/cert/dns"
78 "github.com/0xJacky/Nginx-UI/model"
@@ -23,28 +24,32 @@ func GetDnsCredential(c *gin.Context) {
2324 }
2425 type apiDnsCredential struct {
2526 model.Model
26- Name string `json:"name"`
27- Provider string `json:"provider"`
27+ Name string `json:"name"`
28+ Provider string `json:"provider"`
29+ ProviderCode string `json:"provider_code"`
2830 dns.Config
2931 }
3032 c .JSON (http .StatusOK , apiDnsCredential {
31- Model : dnsCredential .Model ,
32- Name : dnsCredential .Name ,
33- Provider : dnsCredential .Provider ,
34- Config : * dnsCredential .Config ,
33+ Model : dnsCredential .Model ,
34+ Name : dnsCredential .Name ,
35+ Provider : dnsCredential .Provider ,
36+ ProviderCode : dnsCredential .ProviderCode ,
37+ Config : * dnsCredential .Config ,
3538 })
3639}
3740
3841func GetDnsCredentialList (c * gin.Context ) {
3942 cosy.Core [model.DnsCredential ](c ).
43+ SetEqual ("provider_code" ).
4044 SetEqual ("provider" ).
4145 SetFussy ("name" ).
4246 PagingList ()
4347}
4448
4549type DnsCredentialManageJson struct {
46- Name string `json:"name" binding:"required"`
47- Provider string `json:"provider"`
50+ Name string `json:"name" binding:"required"`
51+ Provider string `json:"provider"`
52+ ProviderCode string `json:"provider_code"`
4853 dns.Config
4954}
5055
@@ -54,11 +59,14 @@ func AddDnsCredential(c *gin.Context) {
5459 return
5560 }
5661
62+ providerCode := resolveProviderCode (json )
63+ json .Config .Code = providerCode
5764 json .Config .Name = json .Provider
5865 dnsCredential := model.DnsCredential {
59- Name : json .Name ,
60- Config : & json .Config ,
61- Provider : json .Provider ,
66+ Name : json .Name ,
67+ Config : & json .Config ,
68+ Provider : json .Provider ,
69+ ProviderCode : providerCode ,
6270 }
6371
6472 d := query .DnsCredential
@@ -89,10 +97,12 @@ func EditDnsCredential(c *gin.Context) {
8997 }
9098
9199 json .Config .Name = json .Provider
100+ json .Config .Code = resolveProviderCode (json )
92101 _ , err = d .Where (d .ID .Eq (dnsCredential .ID )).Updates (& model.DnsCredential {
93- Name : json .Name ,
94- Config : & json .Config ,
95- Provider : json .Provider ,
102+ Name : json .Name ,
103+ Config : & json .Config ,
104+ Provider : json .Provider ,
105+ ProviderCode : resolveProviderCode (json ),
96106 })
97107
98108 if err != nil {
@@ -106,3 +116,17 @@ func EditDnsCredential(c *gin.Context) {
106116func DeleteDnsCredential (c * gin.Context ) {
107117 cosy.Core [model.DnsCredential ](c ).Destroy ()
108118}
119+
120+ func resolveProviderCode (payload DnsCredentialManageJson ) string {
121+ if trimmed := normalizeProviderCode (payload .ProviderCode ); trimmed != "" {
122+ return trimmed
123+ }
124+ if trimmed := normalizeProviderCode (payload .Code ); trimmed != "" {
125+ return trimmed
126+ }
127+ return normalizeProviderCode (payload .Provider )
128+ }
129+
130+ func normalizeProviderCode (value string ) string {
131+ return strings .TrimSpace (strings .ToLower (value ))
132+ }
0 commit comments