/
user_posts.go
62 lines (54 loc) · 1.04 KB
/
user_posts.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
package DataManager
import (
"github.com/kycklingar/PBooru/DataManager/db"
"github.com/kycklingar/PBooru/DataManager/user"
)
func HasVoted(userID user.ID, postID int) (bool, error) {
var res bool
return res, db.Context.QueryRow(
`SELECT EXISTS (
SELECT *
FROM post_score_mapping
WHERE post_id = $1
AND user_id = $2
)`,
postID,
userID,
).Scan(&res)
}
func RecentUploads(userID user.ID) ([]Post, error) {
var posts []Post
err := db.QueryRows(
db.Context,
`SELECT id
FROM posts
WHERE uploader = $1
ORDER BY id DESC
LIMIT 5`,
userID,
)(func(scan db.Scanner) error {
var p = NewPost()
err := scan(&p.ID)
posts = append(posts, *p)
return err
})
return posts, err
}
func RecentVotes(userID user.ID) ([]Post, error) {
var posts []Post
err := db.QueryRows(
db.Context,
`SELECT post_id
FROM post_score_mapping
WHERE user_id = $1
ORDER BY id DESC
LIMIT 5`,
userID,
)(func(scan db.Scanner) error {
var p = NewPost()
err := scan(&p.ID)
posts = append(posts, *p)
return err
})
return posts, err
}