Commit 92e3a32
Eric Bower
·
2025-08-07 23:07:16 -0400 EDT
parent e1fca8b
refactor(feeds): only fetch users with feeds post
4 files changed,
+40,
-1
+1,
-1
| ... | ... | @@ -586,7 +586,7 @@ func (f *Fetcher) SendEmail(logger *slog.Logger, username, email, subject string | |
| 586 | 586 | } | |
| 587 | 587 | ||
| 588 | 588 | func (f *Fetcher) Run(now time.Time) error { | |
| 589 | - | users, err := f.db.FindUsers() | |
| 589 | + | users, err := f.db.FindUsersWithPost("feeds") | |
| 590 | 590 | if err != nil { | |
| 591 | 591 | return err | |
| 592 | 592 | } |
+1,
-0
| ... | ... | @@ -408,6 +408,7 @@ type DB interface { | |
| 408 | 408 | FindPost(postID string) (*Post, error) | |
| 409 | 409 | FindPostsForUser(pager *Pager, userID string, space string) (*Paginate[*Post], error) | |
| 410 | 410 | FindAllPostsForUser(userID string, space string) ([]*Post, error) | |
| 411 | + | FindUsersWithPost(space string) ([]*User, error) | |
| 411 | 412 | FindPostsBeforeDate(date *time.Time, space string) ([]*Post, error) | |
| 412 | 413 | FindExpiredPosts(space string) ([]*Post, error) | |
| 413 | 414 | FindUpdatedPostsForUser(userID string, space string) ([]*Post, error) |
+34,
-0
| ... | ... | @@ -554,6 +554,40 @@ func (me *PsqlDB) FindPostsBeforeDate(date *time.Time, space string) ([]*db.Post | |
| 554 | 554 | return posts, nil | |
| 555 | 555 | } | |
| 556 | 556 | ||
| 557 | + | func (me *PsqlDB) FindUsersWithPost(space string) ([]*db.User, error) { | |
| 558 | + | var users []*db.User | |
| 559 | + | rs, err := me.Db.Query( | |
| 560 | + | `SELECT u.id, u.name, u.created_at | |
| 561 | + | FROM app_users u | |
| 562 | + | INNER JOIN posts ON u.id=posts.user_id | |
| 563 | + | WHERE cur_space='feeds' | |
| 564 | + | GROUP BY u.id, u.name, u.created_at | |
| 565 | + | ORDER BY name ASC`, | |
| 566 | + | ) | |
| 567 | + | if err != nil { | |
| 568 | + | return users, err | |
| 569 | + | } | |
| 570 | + | for rs.Next() { | |
| 571 | + | var name sql.NullString | |
| 572 | + | user := &db.User{} | |
| 573 | + | err := rs.Scan( | |
| 574 | + | &user.ID, | |
| 575 | + | &name, | |
| 576 | + | &user.CreatedAt, | |
| 577 | + | ) | |
| 578 | + | if err != nil { | |
| 579 | + | return users, err | |
| 580 | + | } | |
| 581 | + | user.Name = name.String | |
| 582 | + | ||
| 583 | + | users = append(users, user) | |
| 584 | + | } | |
| 585 | + | if rs.Err() != nil { | |
| 586 | + | return users, rs.Err() | |
| 587 | + | } | |
| 588 | + | return users, nil | |
| 589 | + | } | |
| 590 | + | ||
| 557 | 591 | func (me *PsqlDB) FindUserForKey(username string, key string) (*db.User, error) { | |
| 558 | 592 | me.Logger.Info("attempting to find user with only public key", "key", key) | |
| 559 | 593 | pk, err := me.FindPublicKeyForKey(key) |
+4,
-0
| ... | ... | @@ -284,3 +284,7 @@ func (me *StubDB) FindTunsEventLogs(userID string) ([]*db.TunsEventLog, error) { | |
| 284 | 284 | func (me *StubDB) VisitUrlNotFound(opts *db.SummaryOpts) ([]*db.VisitUrl, error) { | |
| 285 | 285 | return nil, errNotImpl | |
| 286 | 286 | } | |
| 287 | + | ||
| 288 | + | func (me *StubDB) FindUsersWithPost(space string) ([]*db.User, error) { | |
| 289 | + | return nil, errNotImpl | |
| 290 | + | } |