123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package api
- import (
- "github.com/0xJacky/Nginx-UI/server/internal/cert/dns"
- "github.com/0xJacky/Nginx-UI/server/model"
- "github.com/0xJacky/Nginx-UI/server/query"
- "github.com/gin-gonic/gin"
- "github.com/spf13/cast"
- "net/http"
- )
- func GetDnsCredential(c *gin.Context) {
- id := cast.ToInt(c.Param("id"))
- d := query.DnsCredential
- dnsCredential, err := d.FirstByID(id)
- if err != nil {
- ErrHandler(c, err)
- return
- }
- type apiDnsCredential struct {
- model.Model
- Name string `json:"name"`
- dns.Config
- }
- c.JSON(http.StatusOK, apiDnsCredential{
- Model: dnsCredential.Model,
- Name: dnsCredential.Name,
- Config: *dnsCredential.Config,
- })
- }
- func GetDnsCredentialList(c *gin.Context) {
- d := query.DnsCredential
- provider := c.Query("provider")
- var data []*model.DnsCredential
- var err error
- if provider != "" {
- data, err = d.Where(d.Provider.Eq(provider)).Find()
- } else {
- data, err = d.Find()
- }
- if err != nil {
- ErrHandler(c, err)
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "data": data,
- })
- }
- type DnsCredentialManageJson struct {
- Name string `json:"name" binding:"required"`
- Provider string `json:"provider"`
- dns.Config
- }
- func AddDnsCredential(c *gin.Context) {
- var json DnsCredentialManageJson
- if !BindAndValid(c, &json) {
- return
- }
- json.Config.Name = json.Provider
- dnsCredential := model.DnsCredential{
- Name: json.Name,
- Config: &json.Config,
- Provider: json.Provider,
- }
- d := query.DnsCredential
- err := d.Create(&dnsCredential)
- if err != nil {
- ErrHandler(c, err)
- return
- }
- c.JSON(http.StatusOK, dnsCredential)
- }
- func EditDnsCredential(c *gin.Context) {
- id := cast.ToInt(c.Param("id"))
- var json DnsCredentialManageJson
- if !BindAndValid(c, &json) {
- return
- }
- d := query.DnsCredential
- dnsCredential, err := d.FirstByID(id)
- if err != nil {
- ErrHandler(c, err)
- return
- }
- json.Config.Name = json.Provider
- _, err = d.Where(d.ID.Eq(dnsCredential.ID)).Updates(&model.DnsCredential{
- Name: json.Name,
- Config: &json.Config,
- Provider: json.Provider,
- })
- if err != nil {
- ErrHandler(c, err)
- return
- }
- GetDnsCredential(c)
- }
- func DeleteDnsCredential(c *gin.Context) {
- id := cast.ToInt(c.Param("id"))
- d := query.DnsCredential
- dnsCredential, err := d.FirstByID(id)
- if err != nil {
- ErrHandler(c, err)
- return
- }
- err = d.DeleteByID(dnsCredential.ID)
- if err != nil {
- ErrHandler(c, err)
- return
- }
- c.JSON(http.StatusNoContent, nil)
- }
|