Add ready, discard, merge-problem and workflow notifications
This commit is contained in:
@@ -118,6 +118,37 @@ func clearTurns(_ taskId: String, through seq: Int64) {
|
||||
}
|
||||
}
|
||||
|
||||
@MainActor
|
||||
func notifyTask(_ store: Store, _ ev: ByreEvent) {
|
||||
guard let me = store.me, let taskId = ev.taskId, !taskId.isEmpty else {
|
||||
return
|
||||
}
|
||||
let prefs = me.notificationPrefs
|
||||
let origin = store.api.origin.absoluteString
|
||||
switch ev.kind {
|
||||
case "task.ready" where prefs.ready:
|
||||
show(store, taskId, "task-\(taskId)@\(origin)", "Ready to merge: \(str(ev.payload.value, "overview") ?? "")")
|
||||
case "task.discard_suggested" where prefs.discard:
|
||||
show(store, taskId, "task-\(taskId)@\(origin)", "Suggests discard: \(str(ev.payload.value, "reason") ?? "")")
|
||||
case "task.merge_stopped" where prefs.mergeProblems:
|
||||
show(store, taskId, "task-\(taskId)@\(origin)", "Merge stopped: \(str(ev.payload.value, "reason") ?? "")")
|
||||
case "task.merge_after_review_dropped" where prefs.mergeProblems:
|
||||
show(store, taskId, "task-\(taskId)@\(origin)", "Didn't merge after the review: \(str(ev.payload.value, "reason") ?? "")")
|
||||
case "task.workflow_finished" where prefs.workflows:
|
||||
show(store, taskId, "workflow-\(ev.seq)@\(origin)", "Finished \(str(ev.payload.value, "workflow") ?? ""): \(str(ev.payload.value, "output") ?? "")")
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@MainActor
|
||||
func clearTask(_ store: Store, _ taskId: String) {
|
||||
let id = "task-\(taskId)@\(store.api.origin.absoluteString)"
|
||||
enqueue {
|
||||
UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [id])
|
||||
}
|
||||
}
|
||||
|
||||
@MainActor
|
||||
func notifyTurn(_ store: Store, _ ev: ByreEvent) {
|
||||
guard let me = store.me, me.notificationPrefs.reports, ev.payload.value["summary"] as? Bool == true, let taskId = ev.taskId, !taskId.isEmpty else {
|
||||
|
||||
Reference in New Issue
Block a user