-
Notifications
You must be signed in to change notification settings - Fork 1
/
chapter_log.go
84 lines (72 loc) · 1.14 KB
/
chapter_log.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
package DataManager
import "database/sql"
const lChapter logtable = "comic_chapter"
func init() {
logTableGetFuncs[lChapter] = getLogChapter
}
type logChapter struct {
Action lAction
ComicID int
ID int
Order int
Title string
pages []logComicPage
}
func getLogChapter(log *Log, q querier) error {
rows, err := q.Query(`
SELECT action, comic_id, chapter_id, c_order, title
FROM log_chapters
WHERE log_id = $1
`,
log.ID,
)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
var lc logChapter
err = rows.Scan(
&lc.Action,
&lc.ComicID,
&lc.ID,
&lc.Order,
&lc.Title,
)
if err != nil {
return err
}
log.Chapters = append(log.Chapters, lc)
}
return nil
}
func (l logChapter) log(logID int, tx *sql.Tx) error {
_, err := tx.Exec(`
INSERT INTO log_chapters (
log_id,
comic_id,
chapter_id,
action,
c_order,
title
)
VALUES($1, $2, $3, $4, $5, $6)
`,
logID,
l.ComicID,
l.ID,
l.Action,
l.Order,
l.Title,
)
if err != nil {
return err
}
for _, page := range l.pages {
err = page.log(logID, tx)
if err != nil {
return err
}
}
return nil
}