dns_credential.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package certificate
  2. import (
  3. "github.com/0xJacky/Nginx-UI/api"
  4. "github.com/0xJacky/Nginx-UI/internal/cert/dns"
  5. "github.com/0xJacky/Nginx-UI/internal/cosy"
  6. "github.com/0xJacky/Nginx-UI/model"
  7. "github.com/0xJacky/Nginx-UI/query"
  8. "github.com/gin-gonic/gin"
  9. "github.com/spf13/cast"
  10. "net/http"
  11. )
  12. func GetDnsCredential(c *gin.Context) {
  13. id := cast.ToInt(c.Param("id"))
  14. d := query.DnsCredential
  15. dnsCredential, err := d.FirstByID(id)
  16. if err != nil {
  17. api.ErrHandler(c, err)
  18. return
  19. }
  20. type apiDnsCredential struct {
  21. model.Model
  22. Name string `json:"name"`
  23. Provider string `json:"provider"`
  24. dns.Config
  25. }
  26. c.JSON(http.StatusOK, apiDnsCredential{
  27. Model: dnsCredential.Model,
  28. Name: dnsCredential.Name,
  29. Provider: dnsCredential.Provider,
  30. Config: *dnsCredential.Config,
  31. })
  32. }
  33. func GetDnsCredentialList(c *gin.Context) {
  34. cosy.Core[model.DnsCredential](c).SetFussy("provider").PagingList()
  35. }
  36. type DnsCredentialManageJson struct {
  37. Name string `json:"name" binding:"required"`
  38. Provider string `json:"provider"`
  39. dns.Config
  40. }
  41. func AddDnsCredential(c *gin.Context) {
  42. var json DnsCredentialManageJson
  43. if !api.BindAndValid(c, &json) {
  44. return
  45. }
  46. json.Config.Name = json.Provider
  47. dnsCredential := model.DnsCredential{
  48. Name: json.Name,
  49. Config: &json.Config,
  50. Provider: json.Provider,
  51. }
  52. d := query.DnsCredential
  53. err := d.Create(&dnsCredential)
  54. if err != nil {
  55. api.ErrHandler(c, err)
  56. return
  57. }
  58. c.JSON(http.StatusOK, dnsCredential)
  59. }
  60. func EditDnsCredential(c *gin.Context) {
  61. id := cast.ToInt(c.Param("id"))
  62. var json DnsCredentialManageJson
  63. if !api.BindAndValid(c, &json) {
  64. return
  65. }
  66. d := query.DnsCredential
  67. dnsCredential, err := d.FirstByID(id)
  68. if err != nil {
  69. api.ErrHandler(c, err)
  70. return
  71. }
  72. json.Config.Name = json.Provider
  73. _, err = d.Where(d.ID.Eq(dnsCredential.ID)).Updates(&model.DnsCredential{
  74. Name: json.Name,
  75. Config: &json.Config,
  76. Provider: json.Provider,
  77. })
  78. if err != nil {
  79. api.ErrHandler(c, err)
  80. return
  81. }
  82. GetDnsCredential(c)
  83. }
  84. func DeleteDnsCredential(c *gin.Context) {
  85. cosy.Core[model.DnsCredential](c).Destroy()
  86. }