diff --git a/database/postgres/posts.go b/database/postgres/posts.go index 9380a44..923b59d 100644 --- a/database/postgres/posts.go +++ b/database/postgres/posts.go @@ -258,11 +258,6 @@ func (r *postRepository) Delete(ctx context.Context, post models.Post) error { return err } - err = q.DeletePost(ctx, post.ID) - if err != nil { - return err - } - err = q.ShiftPostsAfter(ctx, psqlcore.ShiftPostsAfterParams{ ShiftOffset: -1, LogShortID: post.LogID, @@ -272,6 +267,11 @@ func (r *postRepository) Delete(ctx context.Context, post models.Post) error { return err } + err = q.DeletePost(ctx, post.ID) + if err != nil { + return err + } + err = tx.Commit() if err != nil { return err diff --git a/services/auth.go b/services/auth.go index 44a45a2..4a51cc9 100644 --- a/services/auth.go +++ b/services/auth.go @@ -56,7 +56,7 @@ func (s *AuthService) FindKey(ctx context.Context, id string) (*models.Key, erro return s.keys.Find(ctx, id) } -// FindKey finds a key by id. +// FindUser finds a user by id. func (s *AuthService) FindUser(ctx context.Context, id string) (*models.User, error) { return s.users.Find(ctx, id) } @@ -154,6 +154,13 @@ func (s *AuthService) TokenFromContext(ctx context.Context) *models.Token { return token } +// SpinOffContext adds the auth token to a background context. +func (s *AuthService) SpinOffContext(ctx context.Context) context.Context { + token := s.TokenFromContext(ctx) + + return context.WithValue(context.Background(), contextKey, &token) +} + // RequestWithToken either returns the request, or the request with a new context that // has the token. func (s *AuthService) RequestWithToken(r *http.Request) *http.Request { diff --git a/services/logs.go b/services/logs.go index dd108da..edce1a5 100644 --- a/services/logs.go +++ b/services/logs.go @@ -484,6 +484,7 @@ func (s *LogService) EditPost(ctx context.Context, id string, update models.Post return nil, err } + ctx = s.authService.SpinOffContext(ctx) go func() { l, err := s.logs.Find(context.Background(), post.LogID) if err != nil {