Skip to content
quarry Artifact [8a38fd82bb]
Login

Artifact [8a38fd82bb]

Artifact 8a38fd82bb042375048ccbaebfb3bdd9e2344d9c0ba7caea7e2cc310fa786efd:


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
// five 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.
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}}",
			)},
		},
	}
}