-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlfms_mdl.go
125 lines (106 loc) · 2.01 KB
/
lfms_mdl.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package main
import (
"github.com/c0gent/unframed"
"time"
//"github.com/c0gent/unframed/log"
)
type lfm struct {
Id int
CharacterName string
CharacterId int
UserName string
UserId int
Rainbow string
AddedAt time.Time
TimeSince string
}
type lfmsAdapter struct {
unframed.DataAdapter
Lfms []*lfm
}
func (da *lfmsAdapter) list() *lfmsAdapter {
da.Query(da.newLfm, db.Stmts["listLfms"], 50)
return da
}
func (da *lfmsAdapter) show(id int) *lfmsAdapter {
da.Query(da.newLfm, db.Stmts["showLfm"], id)
return da
}
func (da *lfmsAdapter) delete(id int) {
da.Exec(db.Stmts["deleteLfm"], id)
}
func (da *lfmsAdapter) save(lfm *lfm) (lastId int) {
if lfm.Id == 0 {
lastId = da.Insert(db.Stmts["createLfm"], lfm.CharacterName, lfm.UserName, lfm.Rainbow)
} else {
da.Exec(db.Stmts["updateLfm"], lfm.Id, lfm.CharacterName, lfm.UserName, lfm.Rainbow)
lastId = lfm.Id
}
return
}
func (da *lfmsAdapter) newLfm() (inf interface{}) {
lfm := new(lfm)
da.Lfms = append(da.Lfms, lfm)
inf = lfm
return
}
func lfmsStmts() {
d := unframed.Dbd.Pg
db.AddStatement("createLfm",
d,
`INSERT INTO lfms (
character_name,
user_name,
rainbow,
added_at
) VALUES ($1, $2, $3, NOW())
RETURNING id;`,
)
db.AddStatement("listLfms",
d,
`
SELECT
l.id,
l.character_name,
l.character_id,
l.user_name,
l.user_id,
l.rainbow,
l.added_at,
(NOW() - l.added_at) as time_since
FROM lfms l
WHERE (NOW() - l.added_at) < (interval '480 minutes')
ORDER BY l.id DESC
LIMIT $1;
`,
)
db.AddStatement("showLfm",
d,
`
SELECT
l.id,
l.character_name,
l.character_id,
l.user_name,
l.user_id,
l.rainbow,
l.added_at,
(NOW() - l.added_at) as time_since
FROM lfms l
WHERE l.id = $1;`,
)
db.AddStatement("updateLfm",
d,
`UPDATE lfms SET
character_name = $2,
user_name = $3,
rainbow = $4,
added_at = NOW()
WHERE id = $1;`,
)
db.AddStatement("deleteLfm",
d,
`DELETE FROM lfms
WHERE id = $1;`,
)
}