return GuardFactory.createAsync(async (req: express.Request, res: express.Response) => {
      const draft: Draft<DraftClaim> = res.locals.claimDraft
      if (draft.document.eligibility) {
        return true
      }

      const eligibility = eligibilityStore.read(req, res)
      if (eligibility.eligible) {
        await this.markDraftEligible(draft, res.locals.user)
        eligibilityStore.clear(req, res)
        return true
      }

      return false
    }, (req: express.Request, res: express.Response): void => {
        ErrorHandling.apply(async (req: express.Request, res: express.Response): Promise<void> => {
          const form: Form<Eligibility> = req.body

          if (form.hasErrors()) {
            this.renderView(form, res)
          } else {
            let eligibility: Eligibility = eligibilityStore.read(req, res)
            if (eligibility === undefined) {
              eligibility = new Eligibility()
            }

            eligibility[this.property] = form.model[this.property]
            eligibilityStore.write(eligibility, req, res)

            this.handleAnswer(eligibility[this.property], res)
          }
        })
Example #3
0
async function retrieveRedirectForLandingPage (req: express.Request, res: express.Response): Promise<string> {
  const eligibility: Eligibility = eligibilityStore.read(req, res)
  if (eligibility.eligible) {
    return ClaimPaths.taskListPage.uri
  }

  const user: User = res.locals.user
  const noClaimIssued: boolean = (await claimStoreClient.retrieveByClaimantId(user)).length === 0
  const noClaimReceived: boolean = (await claimStoreClient.retrieveByDefendantId(user)).length === 0
  const noDraftClaims: boolean = (await draftService.find('claim', '100', user.bearerToken, value => value)).length === 0
  const noDraftResponses: boolean = (await draftService.find('response', '100', user.bearerToken, value => value)).length === 0

  if (noClaimIssued && noClaimReceived && noDraftClaims && noDraftResponses) {
    return EligibilityPaths.startPage.uri
  } else {
    return DashboardPaths.dashboardPage.uri
  }
}
 .get(this.path.uri, (req: express.Request, res: express.Response): void => {
   this.renderView(new Form(eligibilityStore.read(req, res)), res)
 })