-12
appview/db/notifications.go
-12
appview/db/notifications.go
···
248
return GetNotificationsPaginated(e, pagination.FirstPage(), filters...)
249
}
250
251
-
// GetNotifications retrieves notifications for a user with pagination (legacy method for backward compatibility)
252
-
func (d *DB) GetNotifications(ctx context.Context, userDID string, limit, offset int) ([]*models.Notification, error) {
253
-
page := pagination.Page{Limit: limit, Offset: offset}
254
-
return GetNotificationsPaginated(d.DB, page, FilterEq("recipient_did", userDID))
255
-
}
256
-
257
-
// GetNotificationsWithEntities retrieves notifications with entities for a user with pagination
258
-
func (d *DB) GetNotificationsWithEntities(ctx context.Context, userDID string, limit, offset int) ([]*models.NotificationWithEntity, error) {
259
-
page := pagination.Page{Limit: limit, Offset: offset}
260
-
return GetNotificationsWithEntities(d.DB, page, FilterEq("recipient_did", userDID))
261
-
}
262
-
263
func (d *DB) GetUnreadNotificationCount(ctx context.Context, userDID string) (int, error) {
264
recipientFilter := FilterEq("recipient_did", userDID)
265
readFilter := FilterEq("read", 0)
+3
-1
appview/notifications/notifications.go
+3
-1
appview/notifications/notifications.go
···
10
"tangled.org/core/appview/middleware"
11
"tangled.org/core/appview/oauth"
12
"tangled.org/core/appview/pages"
13
)
14
15
type Notifications struct {
···
61
}
62
}
63
64
-
notifications, err := n.db.GetNotificationsWithEntities(r.Context(), userDid, limit+1, offset)
65
if err != nil {
66
log.Println("failed to get notifications:", err)
67
n.pages.Error500(w)
···
10
"tangled.org/core/appview/middleware"
11
"tangled.org/core/appview/oauth"
12
"tangled.org/core/appview/pages"
13
+
"tangled.org/core/appview/pagination"
14
)
15
16
type Notifications struct {
···
62
}
63
}
64
65
+
page := pagination.Page{Limit: limit + 1, Offset: offset}
66
+
notifications, err := db.GetNotificationsWithEntities(n.db, page, db.FilterEq("recipient_did", userDid))
67
if err != nil {
68
log.Println("failed to get notifications:", err)
69
n.pages.Error500(w)
+8
-48
appview/notify/db/db.go
+8
-48
appview/notify/db/db.go
···
30
31
func (n *databaseNotifier) NewStar(ctx context.Context, star *models.Star) {
32
var err error
33
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(star.RepoAt)))
34
if err != nil {
35
log.Printf("NewStar: failed to get repos: %v", err)
36
return
37
}
38
-
if len(repos) == 0 {
39
-
log.Printf("NewStar: no repo found for %s", star.RepoAt)
40
-
return
41
-
}
42
-
repo := repos[0]
43
44
// don't notify yourself
45
if repo.Did == star.StarredByDid {
···
76
}
77
78
func (n *databaseNotifier) NewIssue(ctx context.Context, issue *models.Issue) {
79
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(issue.RepoAt)))
80
if err != nil {
81
log.Printf("NewIssue: failed to get repos: %v", err)
82
return
83
}
84
-
if len(repos) == 0 {
85
-
log.Printf("NewIssue: no repo found for %s", issue.RepoAt)
86
-
return
87
-
}
88
-
repo := repos[0]
89
90
if repo.Did == issue.Did {
91
return
···
129
}
130
issue := issues[0]
131
132
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(issue.RepoAt)))
133
if err != nil {
134
log.Printf("NewIssueComment: failed to get repos: %v", err)
135
return
136
}
137
-
if len(repos) == 0 {
138
-
log.Printf("NewIssueComment: no repo found for %s", issue.RepoAt)
139
-
return
140
-
}
141
-
repo := repos[0]
142
143
recipients := make(map[string]bool)
144
···
211
}
212
213
func (n *databaseNotifier) NewPull(ctx context.Context, pull *models.Pull) {
214
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(pull.RepoAt)))
215
if err != nil {
216
log.Printf("NewPull: failed to get repos: %v", err)
217
return
218
}
219
-
if len(repos) == 0 {
220
-
log.Printf("NewPull: no repo found for %s", pull.RepoAt)
221
-
return
222
-
}
223
-
repo := repos[0]
224
225
if repo.Did == pull.OwnerDid {
226
return
···
266
}
267
pull := pulls[0]
268
269
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", comment.RepoAt))
270
if err != nil {
271
log.Printf("NewPullComment: failed to get repos: %v", err)
272
return
273
}
274
-
if len(repos) == 0 {
275
-
log.Printf("NewPullComment: no repo found for %s", comment.RepoAt)
276
-
return
277
-
}
278
-
repo := repos[0]
279
280
recipients := make(map[string]bool)
281
···
335
336
func (n *databaseNotifier) NewIssueClosed(ctx context.Context, issue *models.Issue) {
337
// Get repo details
338
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(issue.RepoAt)))
339
if err != nil {
340
log.Printf("NewIssueClosed: failed to get repos: %v", err)
341
return
342
}
343
-
if len(repos) == 0 {
344
-
log.Printf("NewIssueClosed: no repo found for %s", issue.RepoAt)
345
-
return
346
-
}
347
-
repo := repos[0]
348
349
// Don't notify yourself
350
if repo.Did == issue.Did {
···
380
381
func (n *databaseNotifier) NewPullMerged(ctx context.Context, pull *models.Pull) {
382
// Get repo details
383
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(pull.RepoAt)))
384
if err != nil {
385
log.Printf("NewPullMerged: failed to get repos: %v", err)
386
return
387
}
388
-
if len(repos) == 0 {
389
-
log.Printf("NewPullMerged: no repo found for %s", pull.RepoAt)
390
-
return
391
-
}
392
-
repo := repos[0]
393
394
// Don't notify yourself
395
if repo.Did == pull.OwnerDid {
···
425
426
func (n *databaseNotifier) NewPullClosed(ctx context.Context, pull *models.Pull) {
427
// Get repo details
428
-
repos, err := db.GetRepos(n.db, 1, db.FilterEq("at_uri", string(pull.RepoAt)))
429
if err != nil {
430
log.Printf("NewPullClosed: failed to get repos: %v", err)
431
return
432
}
433
-
if len(repos) == 0 {
434
-
log.Printf("NewPullClosed: no repo found for %s", pull.RepoAt)
435
-
return
436
-
}
437
-
repo := repos[0]
438
439
// Don't notify yourself
440
if repo.Did == pull.OwnerDid {
···
30
31
func (n *databaseNotifier) NewStar(ctx context.Context, star *models.Star) {
32
var err error
33
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(star.RepoAt)))
34
if err != nil {
35
log.Printf("NewStar: failed to get repos: %v", err)
36
return
37
}
38
39
// don't notify yourself
40
if repo.Did == star.StarredByDid {
···
71
}
72
73
func (n *databaseNotifier) NewIssue(ctx context.Context, issue *models.Issue) {
74
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(issue.RepoAt)))
75
if err != nil {
76
log.Printf("NewIssue: failed to get repos: %v", err)
77
return
78
}
79
80
if repo.Did == issue.Did {
81
return
···
119
}
120
issue := issues[0]
121
122
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(issue.RepoAt)))
123
if err != nil {
124
log.Printf("NewIssueComment: failed to get repos: %v", err)
125
return
126
}
127
128
recipients := make(map[string]bool)
129
···
196
}
197
198
func (n *databaseNotifier) NewPull(ctx context.Context, pull *models.Pull) {
199
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(pull.RepoAt)))
200
if err != nil {
201
log.Printf("NewPull: failed to get repos: %v", err)
202
return
203
}
204
205
if repo.Did == pull.OwnerDid {
206
return
···
246
}
247
pull := pulls[0]
248
249
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", comment.RepoAt))
250
if err != nil {
251
log.Printf("NewPullComment: failed to get repos: %v", err)
252
return
253
}
254
255
recipients := make(map[string]bool)
256
···
310
311
func (n *databaseNotifier) NewIssueClosed(ctx context.Context, issue *models.Issue) {
312
// Get repo details
313
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(issue.RepoAt)))
314
if err != nil {
315
log.Printf("NewIssueClosed: failed to get repos: %v", err)
316
return
317
}
318
319
// Don't notify yourself
320
if repo.Did == issue.Did {
···
350
351
func (n *databaseNotifier) NewPullMerged(ctx context.Context, pull *models.Pull) {
352
// Get repo details
353
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(pull.RepoAt)))
354
if err != nil {
355
log.Printf("NewPullMerged: failed to get repos: %v", err)
356
return
357
}
358
359
// Don't notify yourself
360
if repo.Did == pull.OwnerDid {
···
390
391
func (n *databaseNotifier) NewPullClosed(ctx context.Context, pull *models.Pull) {
392
// Get repo details
393
+
repo, err := db.GetRepo(n.db, db.FilterEq("at_uri", string(pull.RepoAt)))
394
if err != nil {
395
log.Printf("NewPullClosed: failed to get repos: %v", err)
396
return
397
}
398
399
// Don't notify yourself
400
if repo.Did == pull.OwnerDid {