-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlink.go
45 lines (40 loc) · 904 Bytes
/
link.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
package server
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/yosa12978/northrend/domain"
)
func (s *Server) CreateLink() func(ctx *gin.Context) {
return func(ctx *gin.Context) {
name := ctx.PostForm("name")
uri := ctx.PostForm("uri")
link := domain.NewLink(name, uri)
s.linkService.CreateLink(link)
ctx.Redirect(302, "/")
}
}
func (s *Server) Portal() func(ctx *gin.Context) {
return func(ctx *gin.Context) {
uri, exists := ctx.GetQuery("uri")
if !exists {
ctx.JSON(404, gin.H{
"message": "not found",
})
ctx.Abort()
return
}
ctx.Redirect(http.StatusFound, uri)
}
}
func (s *Server) DeleteLink() func(ctx *gin.Context) {
return func(ctx *gin.Context) {
id := ctx.PostForm("linkId")
_, err := s.linkService.DeleteLink(id)
if err != nil {
ctx.String(404, "link not found")
ctx.Abort()
return
}
ctx.Redirect(302, "/admin")
}
}