Refector render structs
authorr <r@freesoftwareextremist.com>
Wed, 25 Dec 2019 14:13:59 +0000 (14:13 +0000)
committerr <r@freesoftwareextremist.com>
Wed, 25 Dec 2019 14:13:59 +0000 (14:13 +0000)
renderer/model.go
renderer/renderer.go
service/service.go

index be777f6e83552b87e92bda6c8c6050f11839f1a3..dfa46b1c0ecb9b351b45e3181584866988b6c98a 100644 (file)
@@ -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
 }
index 4415b0b64585b38713a17dc6f7a8bec186b1763c..48c087912baf119ce7be3cb95efe821453669b5e 100644 (file)
@@ -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)
 }
 
index ffd850c41928c644953f4f741de7484ed6ba91e3..c268b755870d5621359c23723b0b4d25ac0ce240 100644 (file)
@@ -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
 }