Focus relevant status on like, retweet and reply
[bloat] / service / logging.go
1 package service
2
3 import (
4         "context"
5         "io"
6         "log"
7         "mastodon"
8         "time"
9 )
10
11 type loggingService struct {
12         logger *log.Logger
13         Service
14 }
15
16 func NewLoggingService(logger *log.Logger, s Service) Service {
17         return &loggingService{logger, s}
18 }
19
20 func (s *loggingService) GetAuthUrl(ctx context.Context, instance string) (
21         redirectUrl string, sessionID string, err error) {
22         defer func(begin time.Time) {
23                 s.logger.Printf("method=%v, instance=%v, took=%v, err=%v\n",
24                         "GetAuthUrl", instance, time.Since(begin), err)
25         }(time.Now())
26         return s.Service.GetAuthUrl(ctx, instance)
27 }
28
29 func (s *loggingService) GetUserToken(ctx context.Context, sessionID string, c *mastodon.Client,
30         code string) (token string, err error) {
31         defer func(begin time.Time) {
32                 s.logger.Printf("method=%v, session_id=%v, code=%v, took=%v, err=%v\n",
33                         "GetUserToken", sessionID, code, time.Since(begin), err)
34         }(time.Now())
35         return s.Service.GetUserToken(ctx, sessionID, c, code)
36 }
37
38 func (s *loggingService) ServeHomePage(ctx context.Context, client io.Writer) (err error) {
39         defer func(begin time.Time) {
40                 s.logger.Printf("method=%v, took=%v, err=%v\n",
41                         "ServeHomePage", time.Since(begin), err)
42         }(time.Now())
43         return s.Service.ServeHomePage(ctx, client)
44 }
45
46 func (s *loggingService) ServeErrorPage(ctx context.Context, client io.Writer, err error) {
47         defer func(begin time.Time) {
48                 s.logger.Printf("method=%v, err=%v, took=%v\n",
49                         "ServeErrorPage", err, time.Since(begin))
50         }(time.Now())
51         s.Service.ServeErrorPage(ctx, client, err)
52 }
53
54 func (s *loggingService) ServeSigninPage(ctx context.Context, client io.Writer) (err error) {
55         defer func(begin time.Time) {
56                 s.logger.Printf("method=%v, took=%v, err=%v\n",
57                         "ServeSigninPage", time.Since(begin), err)
58         }(time.Now())
59         return s.Service.ServeSigninPage(ctx, client)
60 }
61
62 func (s *loggingService) ServeTimelinePage(ctx context.Context, client io.Writer,
63         c *mastodon.Client, maxID string, sinceID string, minID string) (err error) {
64         defer func(begin time.Time) {
65                 s.logger.Printf("method=%v, max_id=%v, since_id=%v, min_id=%v, took=%v, err=%v\n",
66                         "ServeTimelinePage", maxID, sinceID, minID, time.Since(begin), err)
67         }(time.Now())
68         return s.Service.ServeTimelinePage(ctx, client, c, maxID, sinceID, minID)
69 }
70
71 func (s *loggingService) ServeThreadPage(ctx context.Context, client io.Writer, c *mastodon.Client, id string, reply bool) (err error) {
72         defer func(begin time.Time) {
73                 s.logger.Printf("method=%v, id=%v, reply=%v, took=%v, err=%v\n",
74                         "ServeThreadPage", id, reply, time.Since(begin), err)
75         }(time.Now())
76         return s.Service.ServeThreadPage(ctx, client, c, id, reply)
77 }
78
79 func (s *loggingService) Like(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) {
80         defer func(begin time.Time) {
81                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
82                         "Like", id, time.Since(begin), err)
83         }(time.Now())
84         return s.Service.Like(ctx, client, c, id)
85 }
86
87 func (s *loggingService) UnLike(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) {
88         defer func(begin time.Time) {
89                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
90                         "UnLike", id, time.Since(begin), err)
91         }(time.Now())
92         return s.Service.UnLike(ctx, client, c, id)
93 }
94
95 func (s *loggingService) Retweet(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) {
96         defer func(begin time.Time) {
97                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
98                         "Retweet", id, time.Since(begin), err)
99         }(time.Now())
100         return s.Service.Retweet(ctx, client, c, id)
101 }
102
103 func (s *loggingService) UnRetweet(ctx context.Context, client io.Writer, c *mastodon.Client, id string) (err error) {
104         defer func(begin time.Time) {
105                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
106                         "UnRetweet", id, time.Since(begin), err)
107         }(time.Now())
108         return s.Service.UnRetweet(ctx, client, c, id)
109 }
110
111 func (s *loggingService) PostTweet(ctx context.Context, client io.Writer, c *mastodon.Client, content string, replyToID string) (id string, err error) {
112         defer func(begin time.Time) {
113                 s.logger.Printf("method=%v, content=%v, reply_to_id=%v, took=%v, err=%v\n",
114                         "PostTweet", content, replyToID, time.Since(begin), err)
115         }(time.Now())
116         return s.Service.PostTweet(ctx, client, c, content, replyToID)
117 }