uris_post.gno
2.08 Kb ยท 103 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 gRealmLink.Call(
23 "CreateReply",
24 "boardID", p.Board.ID.String(),
25 "threadID", p.ThreadID.String(),
26 "replyID", "0",
27 "body", "",
28 )
29 }
30 return gRealmLink.Call(
31 "CreateReply",
32 "boardID", p.Board.ID.String(),
33 "threadID", p.ThreadID.String(),
34 "replyID", p.ID.String(),
35 "body", "",
36 )
37}
38
39func makeCreateRepostURI(p *boards.Post) string {
40 return gRealmLink.Call(
41 "CreateRepost",
42 "boardID", p.Board.ID.String(),
43 "threadID", p.ID.String(),
44 "destinationBoardID", "",
45 "title", "",
46 "body", "",
47 )
48}
49
50func makeDeletePostURI(p *boards.Post) string {
51 if boards.IsThread(p) {
52 return gRealmLink.Call(
53 "DeleteThread",
54 "boardID", p.Board.ID.String(),
55 "threadID", p.ThreadID.String(),
56 )
57 }
58 return gRealmLink.Call(
59 "DeleteReply",
60 "boardID", p.Board.ID.String(),
61 "threadID", p.ThreadID.String(),
62 "replyID", p.ID.String(),
63 )
64}
65
66func makeEditPostURI(p *boards.Post) string {
67 if boards.IsThread(p) {
68 return gRealmLink.Call(
69 "EditThread",
70 "boardID", p.Board.ID.String(),
71 "threadID", p.ThreadID.String(),
72 "title", p.Title,
73 "body", p.Body,
74 )
75 }
76
77 return gRealmLink.Call(
78 "EditReply",
79 "boardID", p.Board.ID.String(),
80 "threadID", p.ThreadID.String(),
81 "replyID", p.ID.String(),
82 "body", p.Body,
83 )
84}
85
86func makeFlagURI(p *boards.Post) string {
87 if boards.IsThread(p) {
88 return gRealmLink.Call(
89 "FlagThread",
90 "boardID", p.Board.ID.String(),
91 "threadID", p.ThreadID.String(),
92 "reason", "",
93 )
94 }
95
96 return gRealmLink.Call(
97 "FlagReply",
98 "boardID", p.Board.ID.String(),
99 "threadID", p.ThreadID.String(),
100 "replyID", p.ID.String(),
101 "reason", "",
102 )
103}