forked from razonyang/gopkgs
/
update.go
39 lines (33 loc) · 829 Bytes
/
update.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
package pkg
import (
"net/http"
"clevergo.tech/clevergo"
"github.com/echonil/gopkgs/internal/models"
"github.com/echonil/gopkgs/internal/web/alert"
)
func (h *Handler) update(c *clevergo.Context) error {
ctx := c.Context()
pkg, err := h.findPackage(c)
if err != nil {
return err
}
form := newFormPkg(h.DB, h.UserID(ctx), pkg)
if c.IsPost() {
if err := c.Decode(form); err != nil {
h.AddAlert(ctx, alert.NewDanger(err.Error()))
} else if err := form.Update(ctx); err != nil {
h.AddAlert(ctx, alert.NewDanger(err.Error()))
} else {
return c.Redirect(http.StatusFound, "/package")
}
}
domains, err := h.findDomains(c)
if err != nil {
return err
}
return c.Render(http.StatusOK, "package/update.tmpl", clevergo.Map{
"domains": domains,
"vcs": models.VCSSet,
"form": form,
})
}