/
news.go
85 lines (74 loc) · 1.98 KB
/
news.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"strconv"
)
func GetAdminNewNews(c *gin.Context) {
c.HTML(200, "newnews.html", nil)
}
func PostAdminNewNews(c *gin.Context) {
nw := News{}
ret := gin.H{}
if err := c.Bind(&nw); err != nil {
ret["err"] = "Упс, ошибка: " + err.Error()
} else {
nw.Id = GenId(NewsSession)
if len(nw.Message) < 300 {
nw.Short = nw.Message
} else {
nw.Short = nw.Message[:300]
}
if err := NewsSession.Insert(nw); err != nil {
ret["err"] = "Ошибка базы данных" + err.Error()
} else {
ret["ok"] = "Новость создана!"
}
}
c.HTML(200, "newnews.html", ret)
}
func GetAdminNews(c *gin.Context) {
nwe := []News{}
NewsSession.Find(gin.H{}).All(&nwe)
c.HTML(200, "news.html", gin.H{"news": nwe})
}
func GetAdminDelNews(c *gin.Context) {
i, _ := strconv.Atoi(c.Param("kkk"))
NewsSession.Remove(gin.H{"id": i})
c.Redirect(302, "./../news")
}
func GetAdminNewsEdit(c *gin.Context) {
nw := News{}
i, _ := strconv.Atoi(c.Param("kkk"))
NewsSession.Find(gin.H{"id": i}).One(&nw)
fmt.Println(nw.Short, nw.Id)
c.HTML(200, "editn.html", gin.H{"news": nw})
}
func PostAdminNewsEdit(c *gin.Context) {
nw := News{}
ret := gin.H{}
if err := c.Bind(&nw); err != nil {
}
if len(nw.Message) < 300 {
nw.Short = nw.Message
} else {
nw.Short = nw.Message[:300]
}
if err := NewsSession.Update(gin.H{"id": nw.Id}, gin.H{"id": nw.Id, "title": nw.Title, "message": nw.Message, "short": nw.Short}); err != nil {
ret["err"] = "Ошибка базы данных" + err.Error()
} else {
ret["ok"] = "Новость отредактирована!"
}
c.HTML(200, "editn.html", ret)
}
func GetNews(c *gin.Context) {
nw := News{}
i, _ := strconv.Atoi(c.Param("kkk"))
NewsSession.Find(gin.H{"id": i}).One(&nw)
c.HTML(200, "temp.html", gin.H{"news": nw})
}
func GetNewsAll(c *gin.Context) {
nw := []News{}
NewsSession.Find(gin.H{}).Sort("-id").Limit(20).All(&nw)
c.HTML(200, "news20.html", gin.H{"news": nw})
}