aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--renderer/model.go88
-rw-r--r--renderer/renderer.go24
-rw-r--r--service/service.go53
3 files changed, 70 insertions, 95 deletions
diff --git a/renderer/model.go b/renderer/model.go
index be777f6..dfa46b1 100644
--- a/renderer/model.go
+++ b/renderer/model.go
@@ -5,19 +5,12 @@ import (
"web/model"
)
-type NavbarTemplateData struct {
+type NavbarData struct {
User *mastodon.Account
NotificationCount int
}
-func NewNavbarTemplateData(notificationCount int, user *mastodon.Account) *NavbarTemplateData {
- return &NavbarTemplateData{
- NotificationCount: notificationCount,
- User: user,
- }
-}
-
-type TimelinePageTemplateData struct {
+type TimelineData struct {
Title string
Statuses []*mastodon.Status
HasNext bool
@@ -25,91 +18,36 @@ type TimelinePageTemplateData struct {
HasPrev bool
PrevLink string
PostContext model.PostContext
- NavbarData *NavbarTemplateData
-}
-
-func NewTimelinePageTemplateData(title string, statuses []*mastodon.Status, hasNext bool, nextLink string, hasPrev bool,
- prevLink string, postContext model.PostContext, navbarData *NavbarTemplateData) *TimelinePageTemplateData {
- return &TimelinePageTemplateData{
- Title: title,
- Statuses: statuses,
- HasNext: hasNext,
- NextLink: nextLink,
- HasPrev: hasPrev,
- PrevLink: prevLink,
- PostContext: postContext,
- NavbarData: navbarData,
- }
+ NavbarData *NavbarData
}
-type ThreadPageTemplateData struct {
+type ThreadData struct {
Statuses []*mastodon.Status
PostContext model.PostContext
ReplyMap map[string][]mastodon.ReplyInfo
- NavbarData *NavbarTemplateData
+ NavbarData *NavbarData
}
-func NewThreadPageTemplateData(statuses []*mastodon.Status, postContext model.PostContext, replyMap map[string][]mastodon.ReplyInfo, navbarData *NavbarTemplateData) *ThreadPageTemplateData {
- return &ThreadPageTemplateData{
- Statuses: statuses,
- PostContext: postContext,
- ReplyMap: replyMap,
- NavbarData: navbarData,
- }
-}
-
-type NotificationPageTemplateData struct {
+type NotificationData struct {
Notifications []*mastodon.Notification
HasNext bool
NextLink string
- NavbarData *NavbarTemplateData
-}
-
-func NewNotificationPageTemplateData(notifications []*mastodon.Notification, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *NotificationPageTemplateData {
- return &NotificationPageTemplateData{
- Notifications: notifications,
- HasNext: hasNext,
- NextLink: nextLink,
- NavbarData: navbarData,
- }
+ NavbarData *NavbarData
}
-type UserPageTemplateData struct {
+type UserData struct {
User *mastodon.Account
Statuses []*mastodon.Status
HasNext bool
NextLink string
- NavbarData *NavbarTemplateData
-}
-
-func NewUserPageTemplateData(user *mastodon.Account, statuses []*mastodon.Status, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *UserPageTemplateData {
- return &UserPageTemplateData{
- User: user,
- Statuses: statuses,
- HasNext: hasNext,
- NextLink: nextLink,
- NavbarData: navbarData,
- }
+ NavbarData *NavbarData
}
-type AboutPageTemplateData struct {
- NavbarData *NavbarTemplateData
+type AboutData struct {
+ NavbarData *NavbarData
}
-func NewAboutPageTemplateData(navbarData *NavbarTemplateData) *AboutPageTemplateData {
- return &AboutPageTemplateData{
- NavbarData: navbarData,
- }
-}
-
-type EmojiPageTemplateData struct {
- NavbarData *NavbarTemplateData
+type EmojiData struct {
Emojis []*mastodon.Emoji
-}
-
-func NewEmojiPageTemplateData(navbarData *NavbarTemplateData, emojis []*mastodon.Emoji) *EmojiPageTemplateData {
- return &EmojiPageTemplateData{
- NavbarData: navbarData,
- Emojis: emojis,
- }
+ NavbarData *NavbarData
}
diff --git a/renderer/renderer.go b/renderer/renderer.go
index 4415b0b..48c0879 100644
--- a/renderer/renderer.go
+++ b/renderer/renderer.go
@@ -15,12 +15,12 @@ type Renderer interface {
RenderErrorPage(ctx context.Context, writer io.Writer, err error)
RenderHomePage(ctx context.Context, writer io.Writer) (err error)
RenderSigninPage(ctx context.Context, writer io.Writer) (err error)
- RenderTimelinePage(ctx context.Context, writer io.Writer, data *TimelinePageTemplateData) (err error)
- RenderThreadPage(ctx context.Context, writer io.Writer, data *ThreadPageTemplateData) (err error)
- RenderNotificationPage(ctx context.Context, writer io.Writer, data *NotificationPageTemplateData) (err error)
- RenderUserPage(ctx context.Context, writer io.Writer, data *UserPageTemplateData) (err error)
- RenderAboutPage(ctx context.Context, writer io.Writer, data *AboutPageTemplateData) (err error)
- RenderEmojiPage(ctx context.Context, writer io.Writer, data *EmojiPageTemplateData) (err error)
+ RenderTimelinePage(ctx context.Context, writer io.Writer, data *TimelineData) (err error)
+ RenderThreadPage(ctx context.Context, writer io.Writer, data *ThreadData) (err error)
+ RenderNotificationPage(ctx context.Context, writer io.Writer, data *NotificationData) (err error)
+ RenderUserPage(ctx context.Context, writer io.Writer, data *UserData) (err error)
+ RenderAboutPage(ctx context.Context, writer io.Writer, data *AboutData) (err error)
+ RenderEmojiPage(ctx context.Context, writer io.Writer, data *EmojiData) (err error)
}
type renderer struct {
@@ -57,27 +57,27 @@ func (r *renderer) RenderSigninPage(ctx context.Context, writer io.Writer) (err
return r.template.ExecuteTemplate(writer, "signin.tmpl", nil)
}
-func (r *renderer) RenderTimelinePage(ctx context.Context, writer io.Writer, data *TimelinePageTemplateData) (err error) {
+func (r *renderer) RenderTimelinePage(ctx context.Context, writer io.Writer, data *TimelineData) (err error) {
return r.template.ExecuteTemplate(writer, "timeline.tmpl", data)
}
-func (r *renderer) RenderThreadPage(ctx context.Context, writer io.Writer, data *ThreadPageTemplateData) (err error) {
+func (r *renderer) RenderThreadPage(ctx context.Context, writer io.Writer, data *ThreadData) (err error) {
return r.template.ExecuteTemplate(writer, "thread.tmpl", data)
}
-func (r *renderer) RenderNotificationPage(ctx context.Context, writer io.Writer, data *NotificationPageTemplateData) (err error) {
+func (r *renderer) RenderNotificationPage(ctx context.Context, writer io.Writer, data *NotificationData) (err error) {
return r.template.ExecuteTemplate(writer, "notification.tmpl", data)
}
-func (r *renderer) RenderUserPage(ctx context.Context, writer io.Writer, data *UserPageTemplateData) (err error) {
+func (r *renderer) RenderUserPage(ctx context.Context, writer io.Writer, data *UserData) (err error) {
return r.template.ExecuteTemplate(writer, "user.tmpl", data)
}
-func (r *renderer) RenderAboutPage(ctx context.Context, writer io.Writer, data *AboutPageTemplateData) (err error) {
+func (r *renderer) RenderAboutPage(ctx context.Context, writer io.Writer, data *AboutData) (err error) {
return r.template.ExecuteTemplate(writer, "about.tmpl", data)
}
-func (r *renderer) RenderEmojiPage(ctx context.Context, writer io.Writer, data *EmojiPageTemplateData) (err error) {
+func (r *renderer) RenderEmojiPage(ctx context.Context, writer io.Writer, data *EmojiData) (err error) {
return r.template.ExecuteTemplate(writer, "emoji.tmpl", data)
}
diff --git a/service/service.go b/service/service.go
index ffd850c..c268b75 100644
--- a/service/service.go
+++ b/service/service.go
@@ -277,7 +277,17 @@ func (svc *service) ServeTimelinePage(ctx context.Context, client io.Writer,
return
}
- data := renderer.NewTimelinePageTemplateData(title, statuses, hasNext, nextLink, hasPrev, prevLink, postContext, navbarData)
+ data := &renderer.TimelineData{
+ Title: title,
+ Statuses: statuses,
+ HasNext: hasNext,
+ NextLink: nextLink,
+ HasPrev: hasPrev,
+ PrevLink: prevLink,
+ PostContext: postContext,
+ NavbarData: navbarData,
+ }
+
err = svc.renderer.RenderTimelinePage(ctx, client, data)
if err != nil {
return
@@ -344,7 +354,13 @@ func (svc *service) ServeThreadPage(ctx context.Context, client io.Writer, c *mo
return
}
- data := renderer.NewThreadPageTemplateData(statuses, postContext, replyMap, navbarData)
+ data := &renderer.ThreadData{
+ Statuses: statuses,
+ PostContext: postContext,
+ ReplyMap: replyMap,
+ NavbarData: navbarData,
+ }
+
err = svc.renderer.RenderThreadPage(ctx, client, data)
if err != nil {
return
@@ -398,7 +414,12 @@ func (svc *service) ServeNotificationPage(ctx context.Context, client io.Writer,
return
}
- data := renderer.NewNotificationPageTemplateData(notifications, hasNext, nextLink, navbarData)
+ data := &renderer.NotificationData{
+ Notifications: notifications,
+ HasNext: hasNext,
+ NextLink: nextLink,
+ NavbarData: navbarData,
+ }
err = svc.renderer.RenderNotificationPage(ctx, client, data)
if err != nil {
return
@@ -437,7 +458,14 @@ func (svc *service) ServeUserPage(ctx context.Context, client io.Writer, c *mode
return
}
- data := renderer.NewUserPageTemplateData(user, statuses, hasNext, nextLink, navbarData)
+ data := &renderer.UserData{
+ User: user,
+ Statuses: statuses,
+ HasNext: hasNext,
+ NextLink: nextLink,
+ NavbarData: navbarData,
+ }
+
err = svc.renderer.RenderUserPage(ctx, client, data)
if err != nil {
return
@@ -452,7 +480,9 @@ func (svc *service) ServeAboutPage(ctx context.Context, client io.Writer, c *mod
return
}
- data := renderer.NewAboutPageTemplateData(navbarData)
+ data := &renderer.AboutData{
+ NavbarData: navbarData,
+ }
err = svc.renderer.RenderAboutPage(ctx, client, data)
if err != nil {
return
@@ -472,7 +502,11 @@ func (svc *service) ServeEmojiPage(ctx context.Context, client io.Writer, c *mod
return
}
- data := renderer.NewEmojiPageTemplateData(navbarData, emojis)
+ data := &renderer.EmojiData{
+ Emojis: emojis,
+ NavbarData: navbarData,
+ }
+
err = svc.renderer.RenderEmojiPage(ctx, client, data)
if err != nil {
return
@@ -481,7 +515,7 @@ func (svc *service) ServeEmojiPage(ctx context.Context, client io.Writer, c *mod
return
}
-func (svc *service) getNavbarTemplateData(ctx context.Context, client io.Writer, c *model.Client) (data *renderer.NavbarTemplateData, err error) {
+func (svc *service) getNavbarTemplateData(ctx context.Context, client io.Writer, c *model.Client) (data *renderer.NavbarData, err error) {
notifications, err := c.GetNotifications(ctx, nil)
if err != nil {
return
@@ -499,7 +533,10 @@ func (svc *service) getNavbarTemplateData(ctx context.Context, client io.Writer,
return
}
- data = renderer.NewNavbarTemplateData(notificationCount, u)
+ data = &renderer.NavbarData{
+ User: u,
+ NotificationCount: notificationCount,
+ }
return
}