@@ -31,11 +31,6 @@ func CreateFeedFromSubscriptionDiscovery(store *storage.Storage, userID int64, f
31
31
slog .String ("feed_url" , feedCreationRequest .FeedURL ),
32
32
)
33
33
34
- user , storeErr := store .UserByID (userID )
35
- if storeErr != nil {
36
- return nil , locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
37
- }
38
-
39
34
if ! store .CategoryIDExists (userID , feedCreationRequest .CategoryID ) {
40
35
return nil , locale .NewLocalizedErrorWrapper (ErrCategoryNotFound , "error.category_not_found" )
41
36
}
@@ -71,7 +66,7 @@ func CreateFeedFromSubscriptionDiscovery(store *storage.Storage, userID int64, f
71
66
subscription .WithCategoryID (feedCreationRequest .CategoryID )
72
67
subscription .CheckedNow ()
73
68
74
- processor .ProcessFeedEntries (store , subscription , user , true )
69
+ processor .ProcessFeedEntries (store , subscription , userID , true )
75
70
76
71
if storeErr := store .CreateFeed (subscription ); storeErr != nil {
77
72
return nil , locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
@@ -105,11 +100,6 @@ func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model
105
100
slog .String ("feed_url" , feedCreationRequest .FeedURL ),
106
101
)
107
102
108
- user , storeErr := store .UserByID (userID )
109
- if storeErr != nil {
110
- return nil , locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
111
- }
112
-
113
103
if ! store .CategoryIDExists (userID , feedCreationRequest .CategoryID ) {
114
104
return nil , locale .NewLocalizedErrorWrapper (ErrCategoryNotFound , "error.category_not_found" )
115
105
}
@@ -170,7 +160,7 @@ func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model
170
160
subscription .WithCategoryID (feedCreationRequest .CategoryID )
171
161
subscription .CheckedNow ()
172
162
173
- processor .ProcessFeedEntries (store , subscription , user , true )
163
+ processor .ProcessFeedEntries (store , subscription , userID , true )
174
164
175
165
if storeErr := store .CreateFeed (subscription ); storeErr != nil {
176
166
return nil , locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
@@ -195,11 +185,6 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
195
185
slog .Bool ("force_refresh" , forceRefresh ),
196
186
)
197
187
198
- user , storeErr := store .UserByID (userID )
199
- if storeErr != nil {
200
- return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
201
- }
202
-
203
188
originalFeed , storeErr := store .FeedByID (userID , feedID )
204
189
if storeErr != nil {
205
190
return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
@@ -256,13 +241,21 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
256
241
257
242
if localizedError := responseHandler .LocalizedError (); localizedError != nil {
258
243
slog .Warn ("Unable to fetch feed" , slog .String ("feed_url" , originalFeed .FeedURL ), slog .Any ("error" , localizedError .Error ()))
244
+ user , storeErr := store .UserByID (userID )
245
+ if storeErr != nil {
246
+ return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
247
+ }
259
248
originalFeed .WithTranslatedErrorMessage (localizedError .Translate (user .Language ))
260
249
store .UpdateFeedError (originalFeed )
261
250
return localizedError
262
251
}
263
252
264
253
if store .AnotherFeedURLExists (userID , originalFeed .ID , responseHandler .EffectiveURL ()) {
265
254
localizedError := locale .NewLocalizedErrorWrapper (ErrDuplicatedFeed , "error.duplicated_feed" )
255
+ user , storeErr := store .UserByID (userID )
256
+ if storeErr != nil {
257
+ return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
258
+ }
266
259
originalFeed .WithTranslatedErrorMessage (localizedError .Translate (user .Language ))
267
260
store .UpdateFeedError (originalFeed )
268
261
return localizedError
@@ -289,6 +282,10 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
289
282
if errors .Is (parseErr , parser .ErrFeedFormatNotDetected ) {
290
283
localizedError = locale .NewLocalizedErrorWrapper (parseErr , "error.feed_format_not_detected" , parseErr )
291
284
}
285
+ user , storeErr := store .UserByID (userID )
286
+ if storeErr != nil {
287
+ return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
288
+ }
292
289
293
290
originalFeed .WithTranslatedErrorMessage (localizedError .Translate (user .Language ))
294
291
store .UpdateFeedError (originalFeed )
@@ -309,13 +306,17 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
309
306
)
310
307
311
308
originalFeed .Entries = updatedFeed .Entries
312
- processor .ProcessFeedEntries (store , originalFeed , user , forceRefresh )
309
+ processor .ProcessFeedEntries (store , originalFeed , userID , forceRefresh )
313
310
314
311
// We don't update existing entries when the crawler is enabled (we crawl only inexisting entries). Unless it is forced to refresh
315
312
updateExistingEntries := forceRefresh || ! originalFeed .Crawler
316
313
newEntries , storeErr := store .RefreshFeedEntries (originalFeed .UserID , originalFeed .ID , originalFeed .Entries , updateExistingEntries )
317
314
if storeErr != nil {
318
315
localizedError := locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
316
+ user , storeErr := store .UserByID (userID )
317
+ if storeErr != nil {
318
+ return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
319
+ }
319
320
originalFeed .WithTranslatedErrorMessage (localizedError .Translate (user .Language ))
320
321
store .UpdateFeedError (originalFeed )
321
322
return localizedError
@@ -359,6 +360,10 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
359
360
360
361
if storeErr := store .UpdateFeed (originalFeed ); storeErr != nil {
361
362
localizedError := locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
363
+ user , storeErr := store .UserByID (userID )
364
+ if storeErr != nil {
365
+ return locale .NewLocalizedErrorWrapper (storeErr , "error.database_error" , storeErr )
366
+ }
362
367
originalFeed .WithTranslatedErrorMessage (localizedError .Translate (user .Language ))
363
368
store .UpdateFeedError (originalFeed )
364
369
return localizedError
0 commit comments