Skip to content

Commit

Permalink
chore: drop fallback to encrypt mode entirely (#6912)
Browse files Browse the repository at this point in the history
* chore: drop fallback to encrypt mode entirely

* chore: do not require network error test for storage mode

* chore: remove unused imports

* chore: remove unused imports on publicformservice

---------

Co-authored-by: Ken <ken@open.gov.sg>
  • Loading branch information
tshuli and KenLSM authored Nov 20, 2023
1 parent cdf6fea commit 1db4756
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 149 deletions.
51 changes: 9 additions & 42 deletions frontend/src/features/public-form/PublicFormProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,7 @@ import { SubmitHandler } from 'react-hook-form'
import { useNavigate } from 'react-router-dom'
import { useDisclosure } from '@chakra-ui/react'
import { datadogLogs } from '@datadog/browser-logs'
import {
useFeatureIsOn,
useFeatureValue,
useGrowthBook,
} from '@growthbook/growthbook-react'
import { useFeatureIsOn, useGrowthBook } from '@growthbook/growthbook-react'
import { differenceInMilliseconds, isPast } from 'date-fns'
import get from 'lodash/get'
import simplur from 'simplur'
Expand Down Expand Up @@ -147,11 +143,6 @@ export const PublicFormProvider = ({
}
}, [growthbook, formId])

const enableEncryptionBoundaryShift = useFeatureValue(
featureFlags.encryptionBoundaryShift,
true,
)

// Scroll to top of page when user has finished their submission.
useLayoutEffect(() => {
if (submissionData) {
Expand Down Expand Up @@ -275,9 +266,7 @@ export const PublicFormProvider = ({

const {
submitEmailModeFormMutation,
submitStorageModeFormMutation,
submitEmailModeFormFetchMutation,
submitStorageModeFormFetchMutation,
submitStorageModeClearFormMutation,
submitStorageModeClearFormFetchMutation,
submitStorageModeClearFormWithVirusScanningMutation,
Expand Down Expand Up @@ -484,9 +473,7 @@ export const PublicFormProvider = ({
: {}),
}

const submitStorageFormWithFetch = function (
routeToNewStorageModeSubmission: boolean,
) {
const submitStorageFormWithFetch = function () {
datadogLogs.logger.info(`handleSubmitForm: submitting via fetch`, {
meta: {
...logMeta,
Expand All @@ -495,16 +482,11 @@ export const PublicFormProvider = ({
},
})

return (
routeToNewStorageModeSubmission
? submitStorageModeClearFormFetchMutation
: submitStorageModeFormFetchMutation
)
return submitStorageModeClearFormFetchMutation
.mutateAsync(
{
...formData,
...formPaymentData,
publicKey: form.publicKey,
},
{
onSuccess: ({
Expand Down Expand Up @@ -546,7 +528,7 @@ export const PublicFormProvider = ({

// TODO (#5826): Toggle to use fetch for submissions instead of axios. If enabled, this is used for testing and to use fetch instead of axios by default if testing shows fetch is more stable. Remove once network error is resolved
if (useFetchForSubmissions) {
return submitStorageFormWithFetch(enableEncryptionBoundaryShift)
return submitStorageFormWithFetch()
}
datadogLogs.logger.info(`handleSubmitForm: submitting via axios`, {
meta: {
Expand All @@ -557,7 +539,7 @@ export const PublicFormProvider = ({
})

// TODO (FRM-1413): Move to main return statement once virus scanner has been fully rolled out
if (enableEncryptionBoundaryShift && enableVirusScanner) {
if (enableVirusScanner) {
return submitStorageModeClearFormWithVirusScanningMutation.mutateAsync(
{
...formData,
Expand Down Expand Up @@ -597,25 +579,18 @@ export const PublicFormProvider = ({
)

// defaults to the safest option of storage submission without virus scanning
return submitStorageFormWithFetch(
enableEncryptionBoundaryShift,
)
return submitStorageFormWithFetch()
},
},
)
}

return (
(
enableEncryptionBoundaryShift
? submitStorageModeClearFormMutation
: submitStorageModeFormMutation
)
submitStorageModeClearFormMutation
.mutateAsync(
{
...formData,
...formPaymentData,
publicKey: form.publicKey,
},
{
onSuccess: ({
Expand Down Expand Up @@ -653,13 +628,8 @@ export const PublicFormProvider = ({
},
})

if (/Network Error/i.test(error.message)) {
axiosDebugFlow()
return submitStorageFormWithFetch(
enableEncryptionBoundaryShift,
)
}
showErrorToast(error, form)
axiosDebugFlow()
return submitStorageFormWithFetch()
})
)
}
Expand All @@ -678,12 +648,9 @@ export const PublicFormProvider = ({
getCaptchaResponse,
submitEmailModeFormFetchMutation,
submitEmailModeFormMutation,
enableEncryptionBoundaryShift,
enableVirusScanner,
submitStorageModeClearFormMutation,
submitStorageModeFormMutation,
submitStorageModeClearFormFetchMutation,
submitStorageModeFormFetchMutation,
navigate,
formId,
storePaymentMemory,
Expand Down
90 changes: 0 additions & 90 deletions frontend/src/features/public-form/PublicFormService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ import { FormFieldValues } from '~templates/Field'
import {
createClearSubmissionFormData,
createClearSubmissionWithVirusScanningFormData,
createEncryptedSubmissionData,
getAttachmentsMap,
} from './utils/createSubmission'
import { filterHiddenInputs } from './utils/filterHiddenInputs'
Expand Down Expand Up @@ -155,45 +154,6 @@ export const submitEmailModeForm = async ({
).then(({ data }) => data)
}

export const submitStorageModeForm = async ({
formFields,
formLogics,
formInputs,
formId,
publicKey,
captchaResponse = null,
captchaType = '',
paymentReceiptEmail,
responseMetadata,
paymentProducts,
payments,
}: SubmitStorageFormArgs) => {
const filteredInputs = filterHiddenInputs({
formFields,
formInputs,
formLogics,
})
const submissionContent = await createEncryptedSubmissionData({
formFields,
formInputs: filteredInputs,
publicKey,
responseMetadata,
paymentReceiptEmail,
payments,
paymentProducts,
})
return ApiService.post<SubmissionResponseDto>(
`${PUBLIC_FORMS_ENDPOINT}/${formId}/submissions/encrypt`,
submissionContent,
{
params: {
captchaResponse: String(captchaResponse),
captchaType,
},
},
).then(({ data }) => data)
}

export const submitStorageModeClearForm = async ({
formFields,
formLogics,
Expand Down Expand Up @@ -369,56 +329,6 @@ export const submitEmailModeFormWithFetch = async ({
return processFetchResponse(response)
}

// TODO (#5826): Fallback mutation using Fetch. Remove once network error is resolved
export const submitStorageModeFormWithFetch = async ({
formFields,
formLogics,
formInputs,
formId,
publicKey,
captchaResponse = null,
captchaType = '',
paymentReceiptEmail,
responseMetadata,
paymentProducts,
payments,
}: SubmitStorageFormArgs) => {
const filteredInputs = filterHiddenInputs({
formFields,
formInputs,
formLogics,
})
const submissionContent = await createEncryptedSubmissionData({
formFields,
formInputs: filteredInputs,
publicKey,
responseMetadata,
paymentReceiptEmail,
payments,
paymentProducts,
})

// Add captcha response to query string
const queryString = new URLSearchParams({
captchaResponse: String(captchaResponse),
captchaType,
}).toString()

const response = await fetch(
`${API_BASE_URL}${PUBLIC_FORMS_ENDPOINT}/${formId}/submissions/encrypt?${queryString}`,
{
method: 'POST',
body: JSON.stringify(submissionContent),
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
},
)

return processFetchResponse(response)
}

/**
* Post feedback for a given form.
* @param formId the id of the form to post feedback for
Expand Down
17 changes: 0 additions & 17 deletions frontend/src/features/public-form/mutations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,10 @@ import {
submitEmailModeFormWithFetch,
submitFormFeedback,
submitFormIssue,
SubmitStorageFormArgs,
SubmitStorageFormClearArgs,
submitStorageModeClearForm,
submitStorageModeClearFormWithFetch,
submitStorageModeClearFormWithVirusScanning,
submitStorageModeForm,
submitStorageModeFormWithFetch,
uploadAttachmentToQuarantine,
} from './PublicFormService'

Expand Down Expand Up @@ -82,12 +79,6 @@ export const usePublicFormMutations = (
},
)

const submitStorageModeFormMutation = useMutation(
(args: Omit<SubmitStorageFormArgs, 'formId'>) => {
return submitStorageModeForm({ ...args, formId })
},
)

const submitStorageModeClearFormMutation = useMutation(
(args: Omit<SubmitStorageFormClearArgs, 'formId'>) => {
return submitStorageModeClearForm({ ...args, formId })
Expand All @@ -101,12 +92,6 @@ export const usePublicFormMutations = (
},
)

const submitStorageModeFormFetchMutation = useMutation(
(args: Omit<SubmitStorageFormArgs, 'formId'>) => {
return submitStorageModeFormWithFetch({ ...args, formId })
},
)

const submitStorageModeClearFormFetchMutation = useMutation(
(args: Omit<SubmitStorageFormClearArgs, 'formId'>) => {
return submitStorageModeClearFormWithFetch({ ...args, formId })
Expand Down Expand Up @@ -194,9 +179,7 @@ export const usePublicFormMutations = (

return {
submitEmailModeFormMutation,
submitStorageModeFormMutation,
submitFormFeedbackMutation,
submitStorageModeFormFetchMutation,
submitEmailModeFormFetchMutation,
submitStorageModeClearFormMutation,
submitStorageModeClearFormFetchMutation,
Expand Down

0 comments on commit 1db4756

Please sign in to comment.