當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript featureToggles.FeatureToggles類代碼示例

本文整理匯總了TypeScript中utils/featureToggles.FeatureToggles的典型用法代碼示例。如果您正苦於以下問題:TypeScript FeatureToggles類的具體用法?TypeScript FeatureToggles怎麽用?TypeScript FeatureToggles使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了FeatureToggles類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: renderView

    ErrorHandling.apply(async (req: express.Request, res: express.Response, next: express.NextFunction): Promise<void> => {
      const { externalId } = req.params
      const form: Form<Response> = req.body

      if (form.hasErrors()) {
        renderView(form, res)
      } else {
        const claim: Claim = res.locals.claim
        const draft: Draft<ResponseDraft> = res.locals.responseDraft
        const user: User = res.locals.user

        draft.document.response = form.model

        if (draft.document.response.type === ResponseType.FULL_ADMISSION) {
          if (!draft.document.fullAdmission) {
            draft.document.fullAdmission = new FullAdmission()
          }
          delete draft.document.partialAdmission
          delete draft.document.freeMediation
        } else if (draft.document.response.type === ResponseType.PART_ADMISSION) {
          if (!draft.document.partialAdmission) {
            draft.document.partialAdmission = new PartialAdmission()
          }
          delete draft.document.fullAdmission
          delete draft.document.rejectAllOfClaim
          delete draft.document.freeMediation
        } else {
          delete draft.document.fullAdmission
          delete draft.document.partialAdmission
          delete draft.document.statementOfMeans
        }

        await new DraftService().save(draft, user.bearerToken)

        switch (draft.document.response.type) {
          case ResponseType.DEFENCE:
            res.redirect(Paths.defenceRejectAllOfClaimPage.evaluateUri({ externalId: externalId }))
            break

          case ResponseType.PART_ADMISSION:
            if (FeatureToggles.hasAnyAuthorisedFeature(claim.features, 'admissions')) {
              res.redirect(PartAdmissionPaths.alreadyPaidPage.evaluateUri({ externalId: externalId }))
            } else {
              res.redirect(Paths.sendYourResponseByEmailPage.evaluateUri({ externalId: externalId }))
            }
            break

          case ResponseType.FULL_ADMISSION:
            if (FeatureToggles.hasAnyAuthorisedFeature(claim.features, 'admissions')) {
              res.redirect(Paths.taskListPage.evaluateUri({ externalId: claim.externalId }))
            } else {
              res.redirect(Paths.sendYourResponseByEmailPage.evaluateUri({ externalId: externalId }))
            }
            break

          default:
            next(new Error(`Unknown response type: ${draft.document.response.type}`))
        }
      }
    }))
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:60,代碼來源:response-type.ts

示例2: buildResolvingClaimSection

  static buildResolvingClaimSection (draft: ResponseDraft, claim: Claim, mediationDraft?: MediationDraft): TaskList {
    if (draft.isResponseRejectedFullyWithDispute()
      || TaskListBuilder.isRejectedFullyBecausePaidLessThanClaimAmountAndExplanationGiven(claim, draft)
      || TaskListBuilder.isPartiallyAdmittedAndWhyDoYouDisagreeTaskCompleted(draft)) {
      let path: string
      if (FeatureToggles.isEnabled('mediation')) {
        path = MediationPaths.freeMediationPage.evaluateUri({ externalId: claim.externalId })
        return new TaskList(
          'Try to resolve the claim', [
            new TaskListItem(
              'Free telephone mediation',
              path,
              FreeMediationTask.isCompleted(draft, mediationDraft)
            )
          ]
        )
      } else {
        path = Paths.freeMediationPage.evaluateUri({ externalId: claim.externalId })
        return new TaskList(
          'Resolving the claim', [
            new TaskListItem(
              'Consider free mediation',
              path,
              FreeMediationTask.isCompleted(draft, mediationDraft)
            )
          ]
        )
      }

    }

    return undefined
  }
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:33,代碼來源:taskListBuilder.ts

示例3: convertFreeMediation

 private static convertFreeMediation (mediationDraft: MediationDraft, draft: ResponseDraft): YesNoOption {
   if (FeatureToggles.isEnabled('mediation')) {
     return FreeMediationUtil.convertFreeMediation(mediationDraft.youCanOnlyUseMediation)
   } else {
     return FreeMediationUtil.convertFreeMediation(draft.freeMediation)
   }
 }
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:7,代碼來源:responseModelConverter.ts

示例4: it

        it('should be not available when defendant did not request free mediation and claimant rejected response', () => {
          claim = new Claim().deserialize({
            ...claimStoreServiceMock.sampleClaimObj, ...{
              response: {
                ...partialAdmissionWithPaymentBySetDateData,
                freeMediation: 'no'
              }
            }
          })
          draft = new DraftClaimantResponse().deserialize({
            ...draftStoreServiceMock.sampleClaimantResponseDraftObj, ...{
              settleAdmitted: {
                admitted: {
                  option: 'no'
                }
              }
            }
          })

          const taskList: TaskList = TaskListBuilder.buildHowYouWantToRespondSection(draft, claim, new MediationDraft())
          if (FeatureToggles.isEnabled('mediation')) {
            expect(taskList.tasks.find(task => task.name === featureToggleMediationTaskLabel)).to.be.undefined
          } else {
            expect(taskList.tasks.find(task => task.name === mediationTaskLabel)).to.be.undefined
          }
        })
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:26,代碼來源:taskListBuilder.ts

示例5: isCompleted

 static isCompleted (claimantResponseDraft: DraftClaimantResponse, mediationDraft: MediationDraft): boolean {
   if (FeatureToggles.isEnabled('mediation')) {
     return mediationDraft.willYouTryMediation !== undefined && validator.validateSync(mediationDraft.willYouTryMediation).length === 0
   } else {
     return claimantResponseDraft.freeMediation !== undefined && validator.validateSync(claimantResponseDraft.freeMediation).length === 0
   }
 }
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:7,代碼來源:freeMediationTask.ts

示例6: async

const getPayClient = async (req: express.Request): Promise<PayClient> => {
  const authToken = await new ServiceAuthTokenFactoryImpl().get()

  if (FeatureToggles.isEnabled('mockPay')) {
    return new MockPayClient(req.url)
  }
  return new GovPayClient(authToken)
}
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:8,代碼來源:pay.ts

示例7: isCompleted

 static isCompleted (responseDraft: ResponseDraft, mediationDraft: MediationDraft): boolean {
   if (FeatureToggles.isEnabled('mediation')) {
     return (this.isWillYouTryMediationCompleted(mediationDraft)) ||
       this.isYouCanOnlyUseMediationCompleted(mediationDraft) &&
       this.isCanWeUseCompleted(mediationDraft)
   } else {
     return responseDraft.freeMediation !== undefined && validator.validateSync(responseDraft.freeMediation).length === 0
   }
 }
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:9,代碼來源:freeMediationTask.ts

示例8:

    return GuardFactory.createAsync(async (req: express.Request, res: express.Response) => {
      if (!FeatureToggles.isEnabled('newFeaturesConsent')) {
        return true
      }

      const user: User = res.locals.user
      const roles = await claimStoreClient.retrieveUserRoles(user)

      return roles.length !== 0 && roles.some(role => role.includes('cmc-new-features-consent'))
    }, (req: express.Request, res: express.Response): void => {
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:10,代碼來源:newFeaturesConsentGuard.ts

示例9: it

    it('Should not return "Free telephone mediation" when not fully reject', () => {
      isResponseRejectedFullyWithDisputeStub.returns(false)

      const tasks: TaskListItem[] = TaskListBuilder.buildRemainingTasks(new ResponseDraft(), claim, new MediationDraft())
      if (FeatureToggles.isEnabled('mediation')) {
        expect(tasks.map(task => task.name)).to.not.contain(featureToggleMediationTaskLabel)
      } else {
        expect(tasks.map(task => task.name)).to.not.contain(mediationTaskLabel)
      }
    })
開發者ID:hmcts,項目名稱:cmc-citizen-frontend,代碼行數:10,代碼來源:taskListBuilder.ts


注:本文中的utils/featureToggles.FeatureToggles類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。