/
api_site.go
56 lines (50 loc) 路 1.34 KB
/
api_site.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package admin
import (
"errors"
"github.com/gin-gonic/gin"
"github.com/tivizi/forarun/pkg/domain"
"github.com/tivizi/forarun/pkg/site"
)
func init() {
r := site.DefaultEngine()
r.PUT("/api/v1/site/admin/sites", updateSite)
r.PATCH("/api/v1/site/admin/sites/pki/validation/:host/:fileauth", newPkiFileAuth)
}
// UpdateSiteReq 鏇存柊绔欑偣
type UpdateSiteReq struct {
Name string `binding:"required"`
Header string
Footer string
}
// @Summary 鏇存柊绔欑偣
// @tags 绔欑偣绠$悊
// @Accept json
// @Produce json
// @Param req body admin.UpdateSiteReq true "UpdateSiteReq"
// @Router /api/v1/site/admin/sites [put]
func updateSite(c *gin.Context, s *site.Context) (interface{}, error) {
var updateSiteReq UpdateSiteReq
if err := c.ShouldBind(&updateSiteReq); err != nil {
return nil, err
}
siteObj, err := domain.LoadSiteByHost(s.Host)
if err != nil {
return nil, err
}
if !siteObj.Editable(s.Session) {
return nil, errors.New("鏃犳潈缂栬緫")
}
err = siteObj.Update(updateSiteReq.Name, updateSiteReq.Header, updateSiteReq.Footer)
if err == nil {
for _, v := range siteObj.Hosts {
site.RemoveSiteCache(v)
}
}
return nil, err
}
func newPkiFileAuth(c *gin.Context, site *site.Context) (interface{}, error) {
host := c.Param("host")
fileauth := c.Param("fileauth")
err := site.Site.UpdatePkiValidation(host, fileauth)
return nil, err
}