uris_post.gno
1.44 Kb · 66 lines
1package boards2
2
3import (
4 "gno.land/p/gnoland/boards"
5)
6
7func makeThreadURI(p *boards.Post) string {
8 if boards.IsThread(p) {
9 return makeBoardURI(p.Board) + "/" + p.ID.String()
10 }
11
12 // When post is a reply use the parent thread ID
13 return makeBoardURI(p.Board) + "/" + p.ThreadID.String()
14}
15
16func makeReplyURI(p *boards.Post) string {
17 return makeBoardURI(p.Board) + "/" + p.ThreadID.String() + "/" + p.ID.String()
18}
19
20func makeCreateReplyURI(p *boards.Post) string {
21 if boards.IsThread(p) {
22 return makeThreadURI(p) + "/reply"
23 }
24 return makeReplyURI(p) + "/reply"
25}
26
27func makeCreateRepostURI(p *boards.Post) string {
28 return makeThreadURI(p) + "/repost"
29}
30
31func makeDeletePostURI(p *boards.Post) string {
32 if boards.IsThread(p) {
33 return gRealmLink.Call(
34 "DeleteThread",
35 "boardID", p.Board.ID.String(),
36 "threadID", p.ThreadID.String(),
37 )
38 }
39 return gRealmLink.Call(
40 "DeleteReply",
41 "boardID", p.Board.ID.String(),
42 "threadID", p.ThreadID.String(),
43 "replyID", p.ID.String(),
44 )
45}
46
47func makeEditPostURI(p *boards.Post) string {
48 if boards.IsThread(p) {
49 return makeThreadURI(p) + "/edit"
50 }
51 return makeReplyURI(p) + "/edit"
52}
53
54func makeFlagURI(p *boards.Post) string {
55 if boards.IsThread(p) {
56 return makeThreadURI(p) + "/flag"
57 }
58 return makeReplyURI(p) + "/flag"
59}
60
61func makeFlaggingReasonsURI(p *boards.Post) string {
62 if boards.IsThread(p) {
63 return makeThreadURI(p) + "/flagging-reasons"
64 }
65 return makeReplyURI(p) + "/flagging-reasons"
66}