What does the Employment Verification Workflow Definition look like?
workflows/employment_verification.go
// EmploymentVerification is a Workflow Definition that calls for the execution of a Side Effect, and an Activity,
// but then waits on and handles a Signal. It is also capable of handling a Query to get Candidate Details.
// This is executed as a Child Workflow by the main Background Check.
func EmploymentVerification(ctx workflow.Context, input *EmploymentVerificationWorkflowInput) (*EmploymentVerificationWorkflowResult, error) {
var result EmploymentVerificationWorkflowResult
err := workflow.SetQueryHandler(ctx, EmploymentVerificationDetailsQuery, func() (CandidateDetails, error) {
return input.CandidateDetails, nil
})
if err != nil {
return &result, err
}
researcher, err := chooseResearcher(ctx, input)
if err != nil {
return &result, err
}
err = emailEmploymentVerificationRequest(ctx, input, researcher)
if err != nil {
return &result, err
}
submission, err := waitForEmploymentVerificationSubmission(ctx)
result = EmploymentVerificationWorkflowResult(*submission)
return &result, err
}