053c2fd30b6aeaddd1b09970ac6824d5e83f5a00
[bloat] / renderer / model.go
1 package renderer
2
3 import (
4         "mastodon"
5 )
6
7 type NavbarTemplateData struct {
8         NotificationCount int
9 }
10
11 func NewNavbarTemplateData(notificationCount int) *NavbarTemplateData {
12         return &NavbarTemplateData{
13                 NotificationCount: notificationCount,
14         }
15 }
16
17 type TimelinePageTemplateData struct {
18         Statuses   []*mastodon.Status
19         HasNext    bool
20         NextLink   string
21         HasPrev    bool
22         PrevLink   string
23         NavbarData *NavbarTemplateData
24 }
25
26 func NewTimelinePageTemplateData(statuses []*mastodon.Status, hasNext bool, nextLink string, hasPrev bool,
27         prevLink string, navbarData *NavbarTemplateData) *TimelinePageTemplateData {
28         return &TimelinePageTemplateData{
29                 Statuses:   statuses,
30                 HasNext:    hasNext,
31                 NextLink:   nextLink,
32                 HasPrev:    hasPrev,
33                 PrevLink:   prevLink,
34                 NavbarData: navbarData,
35         }
36 }
37
38 type ThreadPageTemplateData struct {
39         Statuses     []*mastodon.Status
40         ReplyToID    string
41         ReplyContent string
42         ReplyMap     map[string][]mastodon.ReplyInfo
43         NavbarData   *NavbarTemplateData
44 }
45
46 func NewThreadPageTemplateData(statuses []*mastodon.Status, replyToID string, replyContent string, replyMap map[string][]mastodon.ReplyInfo, navbarData *NavbarTemplateData) *ThreadPageTemplateData {
47         return &ThreadPageTemplateData{
48                 Statuses:     statuses,
49                 ReplyToID:    replyToID,
50                 ReplyContent: replyContent,
51                 ReplyMap:     replyMap,
52                 NavbarData:   navbarData,
53         }
54 }
55
56 type NotificationPageTemplateData struct {
57         Notifications []*mastodon.Notification
58         HasNext       bool
59         NextLink      string
60         NavbarData    *NavbarTemplateData
61 }
62
63 func NewNotificationPageTemplateData(notifications []*mastodon.Notification, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *NotificationPageTemplateData {
64         return &NotificationPageTemplateData{
65                 Notifications: notifications,
66                 HasNext:       hasNext,
67                 NextLink:      nextLink,
68                 NavbarData:    navbarData,
69         }
70 }
71
72 type UserPageTemplateData struct {
73         User       *mastodon.Account
74         Statuses   []*mastodon.Status
75         HasNext    bool
76         NextLink   string
77         NavbarData *NavbarTemplateData
78 }
79
80 func NewUserPageTemplateData(user *mastodon.Account, statuses []*mastodon.Status, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *UserPageTemplateData {
81         return &UserPageTemplateData{
82                 User:       user,
83                 Statuses:   statuses,
84                 HasNext:    hasNext,
85                 NextLink:   nextLink,
86                 NavbarData: navbarData,
87         }
88 }
89
90 type AboutPageTemplateData struct {
91         NavbarData *NavbarTemplateData
92 }
93
94 func NewAboutPageTemplateData(navbarData *NavbarTemplateData) *AboutPageTemplateData {
95         return &AboutPageTemplateData{
96                 NavbarData: navbarData,
97         }
98 }