Skip to content
quarry Artifact [c36d7ceea5]
Login

Artifact [c36d7ceea5]

Artifact c36d7ceea5d31d793efd7fab79fbdd8c06183537e0cc57fcdaf327a0efc2db53:


package notify

// Workflows returns the definitions quarry provisions at startup (RFC
// 0011 §7). Each carries exactly one in_app step in this phase; push
// and digest steps join in Phase 3, once notify's webpush provider
// (notify#302) and Digester routing are in place. These are the same
// six workflows docs/running.md used to ask an operator to `curl` by
// hand — this is now the one source, upserted by EnsureWorkflow rather
// than typed. quarry-landing is provisioned ahead of need: nothing
// triggers it yet.
func Workflows() []WorkflowDef {
	inApp := func(subject, body string) WorkflowStep {
		return WorkflowStep{
			StepID: "S1",
			Type:   "in_app",
			ControlValues: map[string]string{
				"subject": subject,
				"body":    body,
			},
		}
	}
	return []WorkflowDef{
		{
			Name:              "quarry-mention",
			TriggerIdentifier: "quarry-mention",
			Steps: []WorkflowStep{inApp(
				"{{payload.from}} mentioned you in {{payload.repo}}",
				"{{payload.repo}} — {{payload.text}}",
			)},
		},
		{
			Name:              "quarry-forum-reply",
			TriggerIdentifier: "quarry-forum-reply",
			Steps: []WorkflowStep{inApp(
				"{{payload.from}} replied in {{payload.title}}",
				"{{payload.repo}} — {{payload.text}}",
			)},
		},
		{
			Name:              "quarry-activity",
			TriggerIdentifier: "quarry-activity",
			Steps: []WorkflowStep{inApp(
				"{{payload.summary}}",
				"{{payload.repo}} — by {{payload.actor}}",
			)},
		},
		{
			Name:              "quarry-landing",
			TriggerIdentifier: "quarry-landing",
			Steps: []WorkflowStep{inApp(
				"{{payload.summary}}",
				"{{payload.repo}} — {{payload.link}}",
			)},
		},
		{
			Name:              "quarry-error",
			TriggerIdentifier: "quarry-error",
			Steps: []WorkflowStep{inApp(
				"quarry error on {{payload.surface}}",
				"{{payload.path}} — {{payload.summary}}",
			)},
		},
		{
			Name:              "quarry-slow",
			TriggerIdentifier: "quarry-slow",
			Steps: []WorkflowStep{inApp(
				"slow render: {{payload.path}}",
				"{{payload.summary}}",
			)},
		},
	}
}