appview/notify: add DeleteIssue event #694

merged
opened by boltless.me targeting master from boltless.me/core: feat/search
Changed files
+25
appview
+4
appview/indexer/issues/indexer.go
···
return batch.Flush()
}
+
func (ix *Indexer) Delete(ctx context.Context, issueId int64) error {
+
return ix.indexer.Delete(base36.Encode(issueId))
+
}
+
// Search searches for issues
func (ix *Indexer) Search(ctx context.Context, opts models.IssueSearchOptions) (*SearchResult, error) {
var queries []query.Query
+9
appview/indexer/notifier.go
···
l.Error("failed to index an issue", "err", err)
}
}
+
+
func (ix *Indexer) DeleteIssue(ctx context.Context, issue *models.Issue) {
+
l := log.FromContext(ctx).With("notifier", "indexer.DeleteIssue", "issue", issue)
+
l.Debug("deleting an issue")
+
err := ix.Issues.Delete(ctx, issue.Id)
+
if err != nil {
+
l.Error("failed to delete an issue", "err", err)
+
}
+
}
+2
appview/issues/issues.go
···
return
}
+
rp.notifier.DeleteIssue(r.Context(), issue)
+
// return to all issues page
rp.pages.HxRedirect(w, "/"+f.RepoInfo(user).FullName()+"/issues")
}
+4
appview/notify/db/db.go
···
)
}
+
func (n *databaseNotifier) DeleteIssue(ctx context.Context, issue *models.Issue) {
+
// no-op for now
+
}
+
func (n *databaseNotifier) NewFollow(ctx context.Context, follow *models.Follow) {
actorDid := syntax.DID(follow.UserDid)
recipients := []syntax.DID{syntax.DID(follow.SubjectDid)}
+4
appview/notify/merged_notifier.go
···
m.fanout("NewIssueClosed", ctx, issue)
}
+
func (m *mergedNotifier) DeleteIssue(ctx context.Context, issue *models.Issue) {
+
m.fanout("DeleteIssue", ctx, issue)
+
}
+
func (m *mergedNotifier) NewFollow(ctx context.Context, follow *models.Follow) {
m.fanout("NewFollow", ctx, follow)
}
+2
appview/notify/notifier.go
···
NewIssue(ctx context.Context, issue *models.Issue)
NewIssueComment(ctx context.Context, comment *models.IssueComment)
NewIssueClosed(ctx context.Context, issue *models.Issue)
+
DeleteIssue(ctx context.Context, issue *models.Issue)
NewFollow(ctx context.Context, follow *models.Follow)
DeleteFollow(ctx context.Context, follow *models.Follow)
···
func (m *BaseNotifier) NewIssue(ctx context.Context, issue *models.Issue) {}
func (m *BaseNotifier) NewIssueComment(ctx context.Context, comment *models.IssueComment) {}
func (m *BaseNotifier) NewIssueClosed(ctx context.Context, issue *models.Issue) {}
+
func (m *BaseNotifier) DeleteIssue(ctx context.Context, issue *models.Issue) {}
func (m *BaseNotifier) NewFollow(ctx context.Context, follow *models.Follow) {}
func (m *BaseNotifier) DeleteFollow(ctx context.Context, follow *models.Follow) {}