Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}