dns_credential.go 2.2 KB

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