86aa1cb56c534a1437da63fec52c5ed5c01f63b3
[bloat] / service / logging.go
1 package service
2
3 import (
4         "context"
5         "log"
6         "mime/multipart"
7         "time"
8
9         "bloat/model"
10 )
11
12 type ls struct {
13         logger *log.Logger
14         Service
15 }
16
17 func NewLoggingService(logger *log.Logger, s Service) Service {
18         return &ls{logger, s}
19 }
20
21 func (s *ls) ServeErrorPage(ctx context.Context, c *model.Client, err error) {
22         defer func(begin time.Time) {
23                 s.logger.Printf("method=%v, err=%v, took=%v\n",
24                         "ServeErrorPage", err, time.Since(begin))
25         }(time.Now())
26         s.Service.ServeErrorPage(ctx, c, err)
27 }
28
29 func (s *ls) ServeSigninPage(ctx context.Context, c *model.Client) (err error) {
30         defer func(begin time.Time) {
31                 s.logger.Printf("method=%v, took=%v, err=%v\n",
32                         "ServeSigninPage", time.Since(begin), err)
33         }(time.Now())
34         return s.Service.ServeSigninPage(ctx, c)
35 }
36
37 func (s *ls) ServeTimelinePage(ctx context.Context, c *model.Client, tType string,
38         maxID string, minID string) (err error) {
39         defer func(begin time.Time) {
40                 s.logger.Printf("method=%v, type=%v, took=%v, err=%v\n",
41                         "ServeTimelinePage", tType, time.Since(begin), err)
42         }(time.Now())
43         return s.Service.ServeTimelinePage(ctx, c, tType, maxID, minID)
44 }
45
46 func (s *ls) ServeThreadPage(ctx context.Context, c *model.Client, id string,
47         reply bool) (err error) {
48         defer func(begin time.Time) {
49                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
50                         "ServeThreadPage", id, time.Since(begin), err)
51         }(time.Now())
52         return s.Service.ServeThreadPage(ctx, c, id, reply)
53 }
54
55 func (s *ls) ServeLikedByPage(ctx context.Context, c *model.Client, id string) (err error) {
56         defer func(begin time.Time) {
57                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
58                         "ServeLikedByPage", id, time.Since(begin), err)
59         }(time.Now())
60         return s.Service.ServeLikedByPage(ctx, c, id)
61 }
62
63 func (s *ls) ServeRetweetedByPage(ctx context.Context, c *model.Client, id string) (err error) {
64         defer func(begin time.Time) {
65                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
66                         "ServeRetweetedByPage", id, time.Since(begin), err)
67         }(time.Now())
68         return s.Service.ServeRetweetedByPage(ctx, c, id)
69 }
70
71 func (s *ls) ServeNotificationPage(ctx context.Context, c *model.Client,
72         maxID string, minID string) (err error) {
73         defer func(begin time.Time) {
74                 s.logger.Printf("method=%v, took=%v, err=%v\n",
75                         "ServeNotificationPage", time.Since(begin), err)
76         }(time.Now())
77         return s.Service.ServeNotificationPage(ctx, c, maxID, minID)
78 }
79
80 func (s *ls) ServeUserPage(ctx context.Context, c *model.Client, id string, 
81         pageType string, maxID string, minID string) (err error) {
82         defer func(begin time.Time) {
83                 s.logger.Printf("method=%v, id=%v, type=%v, took=%v, err=%v\n",
84                         "ServeUserPage", id, pageType, time.Since(begin), err)
85         }(time.Now())
86         return s.Service.ServeUserPage(ctx, c, id, pageType, maxID, minID)
87 }
88
89 func (s *ls) ServeAboutPage(ctx context.Context, c *model.Client) (err error) {
90         defer func(begin time.Time) {
91                 s.logger.Printf("method=%v, took=%v, err=%v\n",
92                         "ServeAboutPage", time.Since(begin), err)
93         }(time.Now())
94         return s.Service.ServeAboutPage(ctx, c)
95 }
96
97 func (s *ls) ServeEmojiPage(ctx context.Context, c *model.Client) (err error) {
98         defer func(begin time.Time) {
99                 s.logger.Printf("method=%v, took=%v, err=%v\n",
100                         "ServeEmojiPage", time.Since(begin), err)
101         }(time.Now())
102         return s.Service.ServeEmojiPage(ctx, c)
103 }
104
105 func (s *ls) ServeSearchPage(ctx context.Context, c *model.Client, q string,
106         qType string, offset int) (err error) {
107         defer func(begin time.Time) {
108                 s.logger.Printf("method=%v, took=%v, err=%v\n",
109                         "ServeSearchPage", time.Since(begin), err)
110         }(time.Now())
111         return s.Service.ServeSearchPage(ctx, c, q, qType, offset)
112 }
113
114 func (s *ls)  ServeUserSearchPage(ctx context.Context, c *model.Client,
115         id string, q string, offset int) (err error) {
116         defer func(begin time.Time) {
117                 s.logger.Printf("method=%v, took=%v, err=%v\n",
118                         "ServeUserSearchPage", time.Since(begin), err)
119         }(time.Now())
120         return s.Service.ServeUserSearchPage(ctx, c, id, q, offset)
121 }
122
123 func (s *ls) ServeSettingsPage(ctx context.Context, c *model.Client) (err error) {
124         defer func(begin time.Time) {
125                 s.logger.Printf("method=%v, took=%v, err=%v\n",
126                         "ServeSettingsPage", time.Since(begin), err)
127         }(time.Now())
128         return s.Service.ServeSettingsPage(ctx, c)
129 }
130
131 func (s *ls) NewSession(ctx context.Context, instance string) (redirectUrl string,
132         sessionID string, err error) {
133         defer func(begin time.Time) {
134                 s.logger.Printf("method=%v, instance=%v, took=%v, err=%v\n",
135                         "NewSession", instance, time.Since(begin), err)
136         }(time.Now())
137         return s.Service.NewSession(ctx, instance)
138 }
139
140 func (s *ls) Signin(ctx context.Context, c *model.Client, sessionID string,
141         code string) (token string, userID string, err error) {
142         defer func(begin time.Time) {
143                 s.logger.Printf("method=%v, session_id=%v, took=%v, err=%v\n",
144                         "Signin", sessionID, time.Since(begin), err)
145         }(time.Now())
146         return s.Service.Signin(ctx, c, sessionID, code)
147 }
148
149 func (s *ls) Post(ctx context.Context, c *model.Client, content string,
150         replyToID string, format string, visibility string, isNSFW bool,
151         files []*multipart.FileHeader) (id string, err error) {
152         defer func(begin time.Time) {
153                 s.logger.Printf("method=%v, took=%v, err=%v\n",
154                         "Post", time.Since(begin), err)
155         }(time.Now())
156         return s.Service.Post(ctx, c, content, replyToID, format,
157                 visibility, isNSFW, files)
158 }
159
160 func (s *ls) Like(ctx context.Context, c *model.Client, id string) (count int64, err error) {
161         defer func(begin time.Time) {
162                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
163                         "Like", id, time.Since(begin), err)
164         }(time.Now())
165         return s.Service.Like(ctx, c, id)
166 }
167
168 func (s *ls) UnLike(ctx context.Context, c *model.Client, id string) (count int64, err error) {
169         defer func(begin time.Time) {
170                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
171                         "UnLike", id, time.Since(begin), err)
172         }(time.Now())
173         return s.Service.UnLike(ctx, c, id)
174 }
175
176 func (s *ls) Retweet(ctx context.Context, c *model.Client, id string) (count int64, err error) {
177         defer func(begin time.Time) {
178                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
179                         "Retweet", id, time.Since(begin), err)
180         }(time.Now())
181         return s.Service.Retweet(ctx, c, id)
182 }
183
184 func (s *ls) UnRetweet(ctx context.Context, c *model.Client, id string) (count int64, err error) {
185         defer func(begin time.Time) {
186                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
187                         "UnRetweet", id, time.Since(begin), err)
188         }(time.Now())
189         return s.Service.UnRetweet(ctx, c, id)
190 }
191
192 func (s *ls) Follow(ctx context.Context, c *model.Client, id string) (err error) {
193         defer func(begin time.Time) {
194                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
195                         "Follow", id, time.Since(begin), err)
196         }(time.Now())
197         return s.Service.Follow(ctx, c, id)
198 }
199
200 func (s *ls) UnFollow(ctx context.Context, c *model.Client, id string) (err error) {
201         defer func(begin time.Time) {
202                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
203                         "UnFollow", id, time.Since(begin), err)
204         }(time.Now())
205         return s.Service.UnFollow(ctx, c, id)
206 }
207
208 func (s *ls) SaveSettings(ctx context.Context, c *model.Client, settings *model.Settings) (err error) {
209         defer func(begin time.Time) {
210                 s.logger.Printf("method=%v, took=%v, err=%v\n",
211                         "SaveSettings", time.Since(begin), err)
212         }(time.Now())
213         return s.Service.SaveSettings(ctx, c, settings)
214 }
215
216 func (s *ls) MuteConversation(ctx context.Context, c *model.Client, id string) (err error) {
217         defer func(begin time.Time) {
218                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
219                         "MuteConversation", id, time.Since(begin), err)
220         }(time.Now())
221         return s.Service.MuteConversation(ctx, c, id)
222 }
223
224 func (s *ls) UnMuteConversation(ctx context.Context, c *model.Client, id string) (err error) {
225         defer func(begin time.Time) {
226                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
227                         "UnMuteConversation", id, time.Since(begin), err)
228         }(time.Now())
229         return s.Service.UnMuteConversation(ctx, c, id)
230 }
231
232 func (s *ls) Delete(ctx context.Context, c *model.Client, id string) (err error) {
233         defer func(begin time.Time) {
234                 s.logger.Printf("method=%v, id=%v, took=%v, err=%v\n",
235                         "Delete", id, time.Since(begin), err)
236         }(time.Now())
237         return s.Service.Delete(ctx, c, id)
238 }