@webiny/api-form-builder-so-ddb 0.0.0-mt-3 → 0.0.0-unstable.06b2ede40f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/definitions/form.d.ts +6 -4
- package/definitions/form.js +9 -17
- package/definitions/form.js.map +1 -0
- package/definitions/settings.d.ts +6 -4
- package/definitions/settings.js +8 -16
- package/definitions/settings.js.map +1 -0
- package/definitions/submission.d.ts +6 -4
- package/definitions/submission.js +8 -16
- package/definitions/submission.js.map +1 -0
- package/definitions/system.d.ts +6 -4
- package/definitions/system.js +8 -16
- package/definitions/system.js.map +1 -0
- package/definitions/table.d.ts +7 -6
- package/definitions/table.js +7 -6
- package/definitions/table.js.map +1 -0
- package/index.d.ts +2 -1
- package/index.js +57 -59
- package/index.js.map +1 -0
- package/operations/form/fields.js +2 -3
- package/operations/form/fields.js.map +1 -0
- package/operations/form/index.d.ts +6 -6
- package/operations/form/index.js +123 -177
- package/operations/form/index.js.map +1 -0
- package/operations/settings/index.d.ts +5 -5
- package/operations/settings/index.js +23 -31
- package/operations/settings/index.js.map +1 -0
- package/operations/submission/fields.js +2 -3
- package/operations/submission/fields.js.map +1 -0
- package/operations/submission/index.d.ts +6 -6
- package/operations/submission/index.js +30 -53
- package/operations/submission/index.js.map +1 -0
- package/operations/system/index.d.ts +5 -5
- package/operations/system/index.js +19 -28
- package/operations/system/index.js.map +1 -0
- package/package.json +19 -25
- package/plugins/FormDynamoDbFieldPlugin.js +5 -9
- package/plugins/FormDynamoDbFieldPlugin.js.map +1 -0
- package/plugins/FormSubmissionDynamoDbFieldPlugin.js +5 -9
- package/plugins/FormSubmissionDynamoDbFieldPlugin.js.map +1 -0
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +29 -0
- package/plugins/index.js.map +1 -0
- package/types.d.ts +9 -11
- package/types.js +5 -5
- package/types.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_query","_dbDynamodb","_filter","_sort","_utils","_FormDynamoDbFieldPlugin","_cursor","_get","createFormStorageOperations","params","entity","plugins","formDynamoDbFields","byType","FormDynamoDbFieldPlugin","type","createFormPartitionKey","tenant","locale","createFormLatestPartitionKey","createFormLatestPublishedPartitionKey","createFormGSIPartitionKey","id","targetId","parseIdentifier","createRevisionSortKey","createFormLatestSortKey","formId","value","createLatestPublishedSortKey","createGSISortKey","version","createFormType","createFormLatestType","createFormLatestPublishedType","createRevisionKeys","form","PK","SK","createLatestKeys","createLatestPublishedKeys","createGSIKeys","GSI1_PK","GSI1_SK","createForm","revisionKeys","latestKeys","gsiKeys","entityBatch","createEntityWriteBatch","put","TYPE","execute","ex","WebinyError","message","code","createFormFrom","original","latest","updateForm","latestForm","getForm","where","isLatestForm","published","partitionKey","sortKey","createIdentifier","keys","getClean","listForms","sort","limit","initialWhere","after","queryAllParams","options","gte","results","queryAll","totalCount","length","filteredItems","filterItems","items","fields","sortedItems","sortItems","start","parseInt","decodeCursor","hasMoreItems","end","undefined","slice","cursor","encodeCursor","meta","listFormRevisions","index","deleteForm","beginsWith","latestPublishedKeys","delete","item","deleteFormRevision","revisions","previous","latestPublishedForm","find","rev","isLatest","isLatestPublished","previouslyPublishedForm","filter","f","publishedOn","a","b","Date","getTime","shift","publishForm","unpublishForm","version_not","publishedOn_not","previouslyPublishedRevision","exports"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n FbForm,\n FormBuilderStorageOperationsCreateFormFromParams,\n FormBuilderStorageOperationsCreateFormParams,\n FormBuilderStorageOperationsDeleteFormParams,\n FormBuilderStorageOperationsDeleteFormRevisionParams,\n FormBuilderStorageOperationsGetFormParams,\n FormBuilderStorageOperationsListFormRevisionsParams,\n FormBuilderStorageOperationsListFormRevisionsParamsWhere,\n FormBuilderStorageOperationsListFormsParams,\n FormBuilderStorageOperationsListFormsResponse,\n FormBuilderStorageOperationsPublishFormParams,\n FormBuilderStorageOperationsUnpublishFormParams,\n FormBuilderStorageOperationsUpdateFormParams\n} from \"@webiny/api-form-builder/types\";\nimport type { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport type { QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { queryAll } from \"@webiny/db-dynamodb/utils/query\";\nimport { createEntityWriteBatch } from \"@webiny/db-dynamodb\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n FormBuilderFormCreateGSIPartitionKeyParams,\n FormBuilderFormCreatePartitionKeyParams,\n FormBuilderFormStorageOperations\n} from \"~/types\";\nimport { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\nimport { decodeCursor, encodeCursor } from \"@webiny/db-dynamodb/utils/cursor\";\nimport { getClean } from \"@webiny/db-dynamodb/utils/get\";\n\ntype DbRecord<T = any> = T & {\n PK: string;\n SK: string;\n TYPE: string;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\n\ninterface FormLatestSortKeyParams {\n id?: string;\n formId?: string;\n}\n\ninterface GsiKeys {\n GSI1_PK: string;\n GSI1_SK: string;\n}\n\nexport interface CreateFormStorageOperationsParams {\n entity: Entity<any>;\n table: Table<string, string, string>;\n plugins: PluginsContainer;\n}\n\nexport const createFormStorageOperations = (\n params: CreateFormStorageOperationsParams\n): FormBuilderFormStorageOperations => {\n const { entity, plugins } = params;\n\n const formDynamoDbFields = plugins.byType<FormDynamoDbFieldPlugin>(\n FormDynamoDbFieldPlugin.type\n );\n\n const createFormPartitionKey = (params: FormBuilderFormCreatePartitionKeyParams): string => {\n const { tenant, locale } = params;\n\n return `T#${tenant}#L#${locale}#FB#F`;\n };\n\n const createFormLatestPartitionKey = (\n params: FormBuilderFormCreatePartitionKeyParams\n ): string => {\n return `${createFormPartitionKey(params)}#L`;\n };\n\n const createFormLatestPublishedPartitionKey = (\n params: FormBuilderFormCreatePartitionKeyParams\n ): string => {\n return `${createFormPartitionKey(params)}#LP`;\n };\n\n const createFormGSIPartitionKey = (\n params: FormBuilderFormCreateGSIPartitionKeyParams\n ): string => {\n const { tenant, locale, id: targetId } = params;\n const { id } = parseIdentifier(targetId);\n\n return `T#${tenant}#L#${locale}#FB#F#${id}`;\n };\n\n const createRevisionSortKey = ({ id }: { id: string }): string => {\n return `${id}`;\n };\n\n const createFormLatestSortKey = ({ id, formId }: FormLatestSortKeyParams): string => {\n const value = parseIdentifier(id || formId);\n return value.id;\n };\n\n const createLatestPublishedSortKey = ({ id, formId }: FormLatestSortKeyParams): string => {\n const value = parseIdentifier(id || formId);\n return value.id;\n };\n\n const createGSISortKey = (version: number) => {\n return `${version}`;\n };\n\n const createFormType = (): string => {\n return \"fb.form\";\n };\n\n const createFormLatestType = (): string => {\n return \"fb.form.latest\";\n };\n\n const createFormLatestPublishedType = (): string => {\n return \"fb.form.latestPublished\";\n };\n\n const createRevisionKeys = (form: Pick<FbForm, \"id\" | \"tenant\" | \"locale\">): Keys => {\n return {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form)\n };\n };\n\n const createLatestKeys = (form: Pick<FbForm, \"tenant\" | \"locale\" | \"id\" | \"formId\">): Keys => {\n return {\n PK: createFormLatestPartitionKey(form),\n SK: createFormLatestSortKey(form)\n };\n };\n\n const createLatestPublishedKeys = (\n form: Pick<FbForm, \"tenant\" | \"locale\" | \"id\" | \"formId\">\n ): Keys => {\n return {\n PK: createFormLatestPublishedPartitionKey(form),\n SK: createLatestPublishedSortKey(form)\n };\n };\n\n const createGSIKeys = (form: Pick<FbForm, \"version\" | \"tenant\" | \"locale\">): GsiKeys => {\n return {\n GSI1_PK: createFormGSIPartitionKey(form),\n GSI1_SK: createGSISortKey(form.version)\n };\n };\n\n const createForm = async (\n params: FormBuilderStorageOperationsCreateFormParams\n ): Promise<FbForm> => {\n const { form } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n },\n {\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n }\n ]\n });\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not insert form data into table.\",\n ex.code || \"CREATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n form\n }\n );\n }\n return form;\n };\n\n const createFormFrom = async (\n params: FormBuilderStorageOperationsCreateFormFromParams\n ): Promise<FbForm> => {\n const { form, original, latest } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n },\n {\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n }\n ]\n });\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create form data in the table, from existing form.\",\n ex.code || \"CREATE_FORM_FROM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n original,\n form,\n latest\n }\n );\n }\n\n return form;\n };\n\n const updateForm = async (\n params: FormBuilderStorageOperationsUpdateFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const { formId, tenant, locale } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n const isLatestForm = latestForm ? latestForm.id === form.id : false;\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n }\n ]\n });\n\n if (isLatestForm) {\n entityBatch.put({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n });\n }\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update form data in the table.\",\n ex.code || \"UPDATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n original,\n form,\n latestForm\n }\n );\n }\n\n return form;\n };\n\n const getForm = async (\n params: FormBuilderStorageOperationsGetFormParams\n ): Promise<FbForm | null> => {\n const { where } = params;\n const { id, formId, latest, published, version } = where;\n if (latest && published) {\n throw new WebinyError(\"Cannot have both latest and published params.\");\n }\n let partitionKey: string;\n let sortKey: string;\n if (latest) {\n partitionKey = createFormLatestPartitionKey(where);\n sortKey = createFormLatestSortKey(where);\n } else if (published && !version) {\n /**\n * Because of the specifics how DynamoDB works, we must not load the published record if version is sent.\n */\n partitionKey = createFormLatestPublishedPartitionKey(where);\n sortKey = createLatestPublishedSortKey(where);\n } else if (id || version) {\n partitionKey = createFormPartitionKey(where);\n sortKey = createRevisionSortKey({\n id:\n id ||\n createIdentifier({\n id: formId as string,\n version: version as number\n })\n });\n } else {\n throw new WebinyError(\n \"Missing parameter to create a sort key.\",\n \"MISSING_WHERE_PARAMETER\",\n {\n where\n }\n );\n }\n\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n\n try {\n return await getClean<FbForm>({ entity, keys });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get form by keys.\",\n ex.code || \"GET_FORM_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const listForms = async (\n params: FormBuilderStorageOperationsListFormsParams\n ): Promise<FormBuilderStorageOperationsListFormsResponse> => {\n const { sort, limit, where: initialWhere, after } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormLatestPartitionKey(initialWhere),\n options: {\n gte: \" \"\n }\n };\n\n let results;\n try {\n results = await queryAll<FbForm>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list forms.\",\n ex.code || \"LIST_FORMS_ERROR\",\n {\n where: initialWhere,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n const totalCount = results.length;\n\n const where: Partial<FormBuilderStorageOperationsListFormsParams[\"where\"]> = {\n ...initialWhere\n };\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.tenant;\n delete where.locale;\n\n const filteredItems = filterItems({\n plugins,\n items: results,\n where,\n fields: formDynamoDbFields\n });\n\n const sortedItems = sortItems({\n items: filteredItems,\n sort,\n fields: formDynamoDbFields\n });\n\n const start = parseInt(decodeCursor(after) || \"0\") || 0;\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = sortedItems.slice(start, end);\n /**\n * Although we do not need a cursor here, we will use it as such to keep it standardized.\n * Number is simply encoded.\n */\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return {\n items,\n meta\n };\n };\n\n const listFormRevisions = async (\n params: FormBuilderStorageOperationsListFormRevisionsParams\n ): Promise<FbForm[]> => {\n const { where: initialWhere, sort } = params;\n const { id, formId, tenant, locale } = initialWhere;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormGSIPartitionKey({\n tenant,\n locale,\n id: formId || id\n }),\n options: {\n index: \"GSI1\",\n gte: \" \"\n }\n };\n\n let items: FbForm[] = [];\n try {\n items = await queryAll<FbForm>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query forms by given params.\",\n ex.code || \"QUERY_FORMS_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n const where: Partial<FormBuilderStorageOperationsListFormRevisionsParamsWhere> = {\n ...initialWhere\n };\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.id;\n delete where.formId;\n delete where.tenant;\n delete where.locale;\n\n const filteredItems = filterItems({\n plugins,\n items,\n where,\n fields: formDynamoDbFields\n });\n return sortItems({\n items: filteredItems,\n sort,\n fields: formDynamoDbFields\n });\n };\n\n const deleteForm = async (\n params: FormBuilderStorageOperationsDeleteFormParams\n ): Promise<FbForm> => {\n const { form } = params;\n let items: any[];\n /**\n * This will find all form records.\n */\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormPartitionKey(form),\n options: {\n beginsWith: form.formId || undefined\n }\n };\n try {\n items = await queryAll<DbRecord>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query forms and submissions by given params.\",\n ex.code || \"QUERY_FORM_AND_SUBMISSIONS_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n let latestPublishedKeys: Keys | undefined;\n const entityBatch = createEntityWriteBatch({\n entity,\n delete: [createLatestKeys(form)]\n });\n\n for (const item of items) {\n if (!latestPublishedKeys && item.published) {\n latestPublishedKeys = createLatestPublishedKeys(item);\n }\n entityBatch.delete({\n PK: item.PK,\n SK: item.SK\n });\n }\n\n if (latestPublishedKeys) {\n entityBatch.delete(latestPublishedKeys);\n }\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form and it's submissions.\",\n ex.code || \"DELETE_FORM_AND_SUBMISSIONS_ERROR\"\n );\n }\n return form;\n };\n /**\n * We need to:\n * - delete current revision\n * - get previously published revision and update the record if it exists or delete if it does not\n * - update latest record if current one is the latest\n */\n const deleteFormRevision = async (\n params: FormBuilderStorageOperationsDeleteFormRevisionParams\n ): Promise<FbForm> => {\n const { form, revisions, previous } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n\n const latestForm = revisions[0];\n const latestPublishedForm = revisions.find(rev => rev.published === true);\n\n const isLatest = latestForm ? latestForm.id === form.id : false;\n const isLatestPublished = latestPublishedForm ? latestPublishedForm.id === form.id : false;\n\n const entityBatch = createEntityWriteBatch({\n entity,\n delete: [revisionKeys]\n });\n\n if (isLatest || isLatestPublished) {\n /**\n * Sort out the latest published record.\n */\n if (isLatestPublished) {\n const previouslyPublishedForm = revisions\n .filter(f => !!f.publishedOn && f.version !== form.version)\n .sort((a, b) => {\n return (\n new Date(b.publishedOn as string).getTime() -\n new Date(a.publishedOn as string).getTime()\n );\n })\n .shift();\n if (previouslyPublishedForm) {\n entityBatch.put({\n ...previouslyPublishedForm,\n ...createLatestPublishedKeys(previouslyPublishedForm),\n GSI1_PK: null,\n GSI1_SK: null,\n TYPE: createFormLatestPublishedType()\n });\n } else {\n entityBatch.delete(createLatestPublishedKeys(form));\n }\n }\n /**\n * Sort out the latest record.\n */\n if (isLatest) {\n entityBatch.put({\n ...previous,\n ...latestKeys,\n GSI1_PK: null,\n GSI1_SK: null,\n TYPE: createFormLatestType()\n });\n }\n }\n /**\n * Now save the batch data.\n */\n try {\n await entityBatch.execute();\n\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form revision from table.\",\n ex.code || \"DELETE_FORM_REVISION_ERROR\",\n {\n form,\n latestForm,\n revisionKeys,\n latestKeys\n }\n );\n }\n };\n\n /**\n * We need to save form in:\n * - regular form record\n * - latest published form record\n * - latest form record - if form is latest one\n * - elasticsearch latest form record\n */\n const publishForm = async (\n params: FormBuilderStorageOperationsPublishFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n\n const latestKeys = createLatestKeys(form);\n\n const latestPublishedKeys = createLatestPublishedKeys(form);\n\n const gsiKeys = {\n GSI1_PK: createFormGSIPartitionKey(form),\n GSI1_SK: createGSISortKey(form.version)\n };\n\n const { locale, tenant, formId } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n\n const isLatestForm = latestForm ? latestForm.id === form.id : false;\n /**\n * Update revision and latest published records\n */\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n },\n {\n ...form,\n ...latestPublishedKeys,\n TYPE: createFormLatestPublishedType()\n }\n ]\n });\n\n /**\n * Update the latest form as well\n */\n if (isLatestForm) {\n entityBatch.put({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n });\n }\n\n try {\n await entityBatch.execute();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not publish form.\",\n ex.code || \"PUBLISH_FORM_ERROR\",\n {\n form,\n original,\n latestForm,\n revisionKeys,\n latestKeys,\n latestPublishedKeys\n }\n );\n }\n return form;\n };\n\n /**\n * We need to:\n * - update form revision record\n * - if latest published (LP) is current form, find the previously published record and update LP if there is some previously published, delete otherwise\n * - if is latest update the Elasticsearch record\n */\n const unpublishForm = async (\n params: FormBuilderStorageOperationsUnpublishFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const latestPublishedKeys = createLatestPublishedKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const { formId, tenant, locale } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n\n const latestPublishedForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n published: true\n }\n });\n\n const isLatest = latestForm ? latestForm.id === form.id : false;\n const isLatestPublished = latestPublishedForm ? latestPublishedForm.id === form.id : false;\n\n const entityBatch = createEntityWriteBatch({\n entity,\n put: [\n {\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n }\n ]\n });\n\n if (isLatest) {\n entityBatch.put({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n });\n }\n /**\n * In case previously published revision exists, replace current one with that one.\n * And if it does not, delete the record.\n */\n if (isLatestPublished) {\n const revisions = await listFormRevisions({\n where: {\n formId,\n tenant,\n locale,\n version_not: form.version,\n publishedOn_not: null\n },\n sort: [\"savedOn_DESC\"]\n });\n\n const previouslyPublishedRevision = revisions.shift();\n if (previouslyPublishedRevision) {\n entityBatch.put({\n ...previouslyPublishedRevision,\n ...latestPublishedKeys,\n TYPE: createFormLatestPublishedType()\n });\n } else {\n entityBatch.delete(latestPublishedKeys);\n }\n }\n\n try {\n await entityBatch.execute();\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not unpublish form.\",\n ex.code || \"UNPUBLISH_FORM_ERROR\",\n {\n form,\n original,\n latestForm,\n revisionKeys,\n latestKeys,\n latestPublishedKeys\n }\n );\n }\n };\n\n return {\n createForm,\n createFormFrom,\n updateForm,\n listForms,\n listFormRevisions,\n getForm,\n deleteForm,\n deleteFormRevision,\n publishForm,\n unpublishForm,\n createFormPartitionKey\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Entity, Table } from "dynamodb
|
|
2
|
-
import { FormBuilderSettingsStorageOperations } from "../../types";
|
|
3
|
-
export interface
|
|
1
|
+
import type { Entity, Table } from "@webiny/db-dynamodb/toolbox";
|
|
2
|
+
import type { FormBuilderSettingsStorageOperations } from "../../types";
|
|
3
|
+
export interface CreateSettingsStorageOperationsParams {
|
|
4
4
|
entity: Entity<any>;
|
|
5
|
-
table: Table
|
|
5
|
+
table: Table<string, string, string>;
|
|
6
6
|
}
|
|
7
|
-
export declare const createSettingsStorageOperations: (params:
|
|
7
|
+
export declare const createSettingsStorageOperations: (params: CreateSettingsStorageOperationsParams) => FormBuilderSettingsStorageOperations;
|
|
@@ -1,55 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createSettingsStorageOperations = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
-
|
|
14
|
-
var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
|
|
15
|
-
|
|
16
9
|
var _get = require("@webiny/db-dynamodb/utils/get");
|
|
17
|
-
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
-
|
|
10
|
+
var _dbDynamodb = require("@webiny/db-dynamodb");
|
|
22
11
|
const createSettingsStorageOperations = params => {
|
|
23
12
|
const {
|
|
24
13
|
entity
|
|
25
14
|
} = params;
|
|
26
|
-
|
|
27
15
|
const createSettingsPartitionKey = ({
|
|
28
16
|
tenant,
|
|
29
17
|
locale
|
|
30
18
|
}) => {
|
|
31
19
|
return `T#${tenant}#L#${locale}#FB#SETTINGS`;
|
|
32
20
|
};
|
|
33
|
-
|
|
34
21
|
const createSettingsSortKey = () => {
|
|
35
22
|
return "default";
|
|
36
23
|
};
|
|
37
|
-
|
|
38
24
|
const createKeys = params => {
|
|
39
25
|
return {
|
|
40
26
|
PK: createSettingsPartitionKey(params),
|
|
41
27
|
SK: createSettingsSortKey()
|
|
42
28
|
};
|
|
43
29
|
};
|
|
44
|
-
|
|
45
30
|
const createSettings = async params => {
|
|
46
31
|
const {
|
|
47
32
|
settings
|
|
48
33
|
} = params;
|
|
49
34
|
const keys = createKeys(settings);
|
|
50
|
-
|
|
51
35
|
try {
|
|
52
|
-
await
|
|
36
|
+
await (0, _dbDynamodb.put)({
|
|
37
|
+
entity,
|
|
38
|
+
item: {
|
|
39
|
+
...settings,
|
|
40
|
+
...keys
|
|
41
|
+
}
|
|
42
|
+
});
|
|
53
43
|
return settings;
|
|
54
44
|
} catch (ex) {
|
|
55
45
|
throw new _error.default(ex.message || "Could not create the settings record by given keys.", ex.code || "CREATE_SETTINGS_ERROR", {
|
|
@@ -58,32 +48,33 @@ const createSettingsStorageOperations = params => {
|
|
|
58
48
|
});
|
|
59
49
|
}
|
|
60
50
|
};
|
|
61
|
-
|
|
62
51
|
const getSettings = async params => {
|
|
63
52
|
const keys = createKeys(params);
|
|
64
|
-
|
|
65
53
|
try {
|
|
66
|
-
|
|
54
|
+
return await (0, _get.getClean)({
|
|
67
55
|
entity,
|
|
68
56
|
keys
|
|
69
57
|
});
|
|
70
|
-
return (0, _cleanup.cleanupItem)(entity, item);
|
|
71
58
|
} catch (ex) {
|
|
72
59
|
throw new _error.default(ex.message || "Could not get the settings record by given keys.", ex.code || "LOAD_SETTINGS_ERROR", {
|
|
73
60
|
keys
|
|
74
61
|
});
|
|
75
62
|
}
|
|
76
63
|
};
|
|
77
|
-
|
|
78
64
|
const updateSettings = async params => {
|
|
79
65
|
const {
|
|
80
66
|
settings,
|
|
81
67
|
original
|
|
82
68
|
} = params;
|
|
83
69
|
const keys = createKeys(settings);
|
|
84
|
-
|
|
85
70
|
try {
|
|
86
|
-
await
|
|
71
|
+
await (0, _dbDynamodb.put)({
|
|
72
|
+
entity,
|
|
73
|
+
item: {
|
|
74
|
+
...settings,
|
|
75
|
+
...keys
|
|
76
|
+
}
|
|
77
|
+
});
|
|
87
78
|
return settings;
|
|
88
79
|
} catch (ex) {
|
|
89
80
|
throw new _error.default(ex.message || "Could not update the settings record by given keys.", ex.code || "UPDATE_SETTINGS_ERROR", {
|
|
@@ -93,22 +84,22 @@ const createSettingsStorageOperations = params => {
|
|
|
93
84
|
});
|
|
94
85
|
}
|
|
95
86
|
};
|
|
96
|
-
|
|
97
87
|
const deleteSettings = async params => {
|
|
98
88
|
const {
|
|
99
89
|
settings
|
|
100
90
|
} = params;
|
|
101
91
|
const keys = createKeys(settings);
|
|
102
|
-
|
|
103
92
|
try {
|
|
104
|
-
await
|
|
93
|
+
await (0, _dbDynamodb.deleteItem)({
|
|
94
|
+
entity,
|
|
95
|
+
keys
|
|
96
|
+
});
|
|
105
97
|
} catch (ex) {
|
|
106
98
|
throw new _error.default(ex.message || "Could not delete the settings record by given keys.", ex.code || "DELETE_SETTINGS_ERROR", {
|
|
107
99
|
keys
|
|
108
100
|
});
|
|
109
101
|
}
|
|
110
102
|
};
|
|
111
|
-
|
|
112
103
|
return {
|
|
113
104
|
createSettings,
|
|
114
105
|
getSettings,
|
|
@@ -118,5 +109,6 @@ const createSettingsStorageOperations = params => {
|
|
|
118
109
|
createSettingsSortKey
|
|
119
110
|
};
|
|
120
111
|
};
|
|
112
|
+
exports.createSettingsStorageOperations = createSettingsStorageOperations;
|
|
121
113
|
|
|
122
|
-
|
|
114
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_get","_dbDynamodb","createSettingsStorageOperations","params","entity","createSettingsPartitionKey","tenant","locale","createSettingsSortKey","createKeys","PK","SK","createSettings","settings","keys","put","item","ex","WebinyError","message","code","getSettings","getClean","updateSettings","original","deleteSettings","deleteItem","exports"],"sources":["index.ts"],"sourcesContent":["import type {\n FormBuilderStorageOperationsCreateSettingsParams,\n FormBuilderStorageOperationsDeleteSettingsParams,\n FormBuilderStorageOperationsGetSettingsParams,\n FormBuilderStorageOperationsUpdateSettingsParams,\n Settings\n} from \"@webiny/api-form-builder/types\";\nimport type { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport type {\n FormBuilderSettingsStorageOperations,\n FormBuilderSettingsStorageOperationsCreatePartitionKeyParams\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getClean } from \"@webiny/db-dynamodb/utils/get\";\nimport { deleteItem, put } from \"@webiny/db-dynamodb\";\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n table: Table<string, string, string>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): FormBuilderSettingsStorageOperations => {\n const { entity } = params;\n\n const createSettingsPartitionKey = ({\n tenant,\n locale\n }: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams): string => {\n return `T#${tenant}#L#${locale}#FB#SETTINGS`;\n };\n\n const createSettingsSortKey = (): string => {\n return \"default\";\n };\n\n const createKeys = (params: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams) => {\n return {\n PK: createSettingsPartitionKey(params),\n SK: createSettingsSortKey()\n };\n };\n\n const createSettings = async (\n params: FormBuilderStorageOperationsCreateSettingsParams\n ): Promise<Settings> => {\n const { settings } = params;\n const keys = createKeys(settings);\n\n try {\n await put({\n entity,\n item: {\n ...settings,\n ...keys\n }\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create the settings record by given keys.\",\n ex.code || \"CREATE_SETTINGS_ERROR\",\n {\n keys,\n settings\n }\n );\n }\n };\n\n const getSettings = async (\n params: FormBuilderStorageOperationsGetSettingsParams\n ): Promise<Settings | null> => {\n const keys = createKeys(params);\n\n try {\n return await getClean<Settings>({ entity, keys });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get the settings record by given keys.\",\n ex.code || \"LOAD_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const updateSettings = async (\n params: FormBuilderStorageOperationsUpdateSettingsParams\n ): Promise<Settings> => {\n const { settings, original } = params;\n const keys = createKeys(settings);\n\n try {\n await put({\n entity,\n item: {\n ...settings,\n ...keys\n }\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update the settings record by given keys.\",\n ex.code || \"UPDATE_SETTINGS_ERROR\",\n {\n keys,\n original,\n settings\n }\n );\n }\n };\n\n const deleteSettings = async (\n params: FormBuilderStorageOperationsDeleteSettingsParams\n ): Promise<void> => {\n const { settings } = params;\n const keys = createKeys(settings);\n try {\n await deleteItem({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the settings record by given keys.\",\n ex.code || \"DELETE_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n return {\n createSettings,\n getSettings,\n updateSettings,\n deleteSettings,\n createSettingsPartitionKey,\n createSettingsSortKey\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _FormSubmissionDynamoDbFieldPlugin = require("../../plugins/FormSubmissionDynamoDbFieldPlugin");
|
|
9
|
-
|
|
10
8
|
var _default = () => [new _FormSubmissionDynamoDbFieldPlugin.FormSubmissionDynamoDbFieldPlugin({
|
|
11
9
|
field: "createdOn",
|
|
12
10
|
type: "date"
|
|
@@ -14,5 +12,6 @@ var _default = () => [new _FormSubmissionDynamoDbFieldPlugin.FormSubmissionDynam
|
|
|
14
12
|
field: "savedOn",
|
|
15
13
|
type: "date"
|
|
16
14
|
})];
|
|
15
|
+
exports.default = _default;
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_FormSubmissionDynamoDbFieldPlugin","require","_default","FormSubmissionDynamoDbFieldPlugin","field","type","exports","default"],"sources":["fields.ts"],"sourcesContent":["import { FormSubmissionDynamoDbFieldPlugin } from \"~/plugins/FormSubmissionDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormSubmissionDynamoDbFieldPlugin({\n field: \"createdOn\",\n type: \"date\"\n }),\n new FormSubmissionDynamoDbFieldPlugin({\n field: \"savedOn\",\n type: \"date\"\n })\n];\n"],"mappings":";;;;;;AAAA,IAAAA,kCAAA,GAAAC,OAAA;AAAgG,IAAAC,QAAA,GAEjFA,CAAA,KAAM,CACjB,IAAIC,oEAAiC,CAAC;EAClCC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE;AACV,CAAC,CAAC,EACF,IAAIF,oEAAiC,CAAC;EAClCC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE;AACV,CAAC,CAAC,CACL;AAAAC,OAAA,CAAAC,OAAA,GAAAL,QAAA","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Entity, Table } from "dynamodb
|
|
2
|
-
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
-
import { FormBuilderSubmissionStorageOperations } from "../../types";
|
|
4
|
-
export interface
|
|
1
|
+
import type { Entity, Table } from "@webiny/db-dynamodb/toolbox";
|
|
2
|
+
import type { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
import type { FormBuilderSubmissionStorageOperations } from "../../types";
|
|
4
|
+
export interface CreateSubmissionStorageOperationsParams {
|
|
5
5
|
entity: Entity<any>;
|
|
6
|
-
table: Table
|
|
6
|
+
table: Table<string, string, string>;
|
|
7
7
|
plugins: PluginsContainer;
|
|
8
8
|
}
|
|
9
|
-
export declare const createSubmissionStorageOperations: (params:
|
|
9
|
+
export declare const createSubmissionStorageOperations: (params: CreateSubmissionStorageOperationsParams) => FormBuilderSubmissionStorageOperations;
|
|
@@ -1,42 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createSubmissionStorageOperations = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
-
|
|
14
|
-
var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
|
|
15
|
-
|
|
16
9
|
var _utils = require("@webiny/utils");
|
|
17
|
-
|
|
18
10
|
var _query = require("@webiny/db-dynamodb/utils/query");
|
|
19
|
-
|
|
20
11
|
var _cursor = require("@webiny/db-dynamodb/utils/cursor");
|
|
21
|
-
|
|
22
12
|
var _sort = require("@webiny/db-dynamodb/utils/sort");
|
|
23
|
-
|
|
24
13
|
var _filter = require("@webiny/db-dynamodb/utils/filter");
|
|
25
|
-
|
|
26
14
|
var _FormSubmissionDynamoDbFieldPlugin = require("../../plugins/FormSubmissionDynamoDbFieldPlugin");
|
|
27
|
-
|
|
28
15
|
var _get = require("@webiny/db-dynamodb/utils/get");
|
|
29
|
-
|
|
30
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
31
|
-
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
33
|
-
|
|
16
|
+
var _dbDynamodb = require("@webiny/db-dynamodb");
|
|
34
17
|
const createSubmissionStorageOperations = params => {
|
|
35
18
|
const {
|
|
36
19
|
entity,
|
|
37
20
|
plugins
|
|
38
21
|
} = params;
|
|
39
|
-
|
|
40
22
|
const createSubmissionPartitionKey = params => {
|
|
41
23
|
const {
|
|
42
24
|
tenant,
|
|
@@ -48,15 +30,12 @@ const createSubmissionStorageOperations = params => {
|
|
|
48
30
|
} = (0, _utils.parseIdentifier)(formId);
|
|
49
31
|
return `T#${tenant}#L#${locale}#FB#FS#${id}`;
|
|
50
32
|
};
|
|
51
|
-
|
|
52
33
|
const createSubmissionSortKey = id => {
|
|
53
34
|
return id;
|
|
54
35
|
};
|
|
55
|
-
|
|
56
36
|
const createSubmissionType = () => {
|
|
57
37
|
return "fb.formSubmission";
|
|
58
38
|
};
|
|
59
|
-
|
|
60
39
|
const createSubmission = async params => {
|
|
61
40
|
const {
|
|
62
41
|
submission,
|
|
@@ -66,11 +45,15 @@ const createSubmissionStorageOperations = params => {
|
|
|
66
45
|
PK: createSubmissionPartitionKey(form),
|
|
67
46
|
SK: createSubmissionSortKey(submission.id)
|
|
68
47
|
};
|
|
69
|
-
|
|
70
48
|
try {
|
|
71
|
-
await
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
await (0, _dbDynamodb.put)({
|
|
50
|
+
entity,
|
|
51
|
+
item: {
|
|
52
|
+
...submission,
|
|
53
|
+
...keys,
|
|
54
|
+
TYPE: createSubmissionType()
|
|
55
|
+
}
|
|
56
|
+
});
|
|
74
57
|
} catch (ex) {
|
|
75
58
|
throw new _error.default(ex.message || "Could not create form submission in the DynamoDB.", ex.code || "UPDATE_FORM_SUBMISSION_ERROR", {
|
|
76
59
|
submission,
|
|
@@ -78,10 +61,8 @@ const createSubmissionStorageOperations = params => {
|
|
|
78
61
|
keys
|
|
79
62
|
});
|
|
80
63
|
}
|
|
81
|
-
|
|
82
64
|
return submission;
|
|
83
65
|
};
|
|
84
|
-
|
|
85
66
|
const updateSubmission = async params => {
|
|
86
67
|
const {
|
|
87
68
|
submission,
|
|
@@ -92,11 +73,15 @@ const createSubmissionStorageOperations = params => {
|
|
|
92
73
|
PK: createSubmissionPartitionKey(form),
|
|
93
74
|
SK: createSubmissionSortKey(submission.id)
|
|
94
75
|
};
|
|
95
|
-
|
|
96
76
|
try {
|
|
97
|
-
await
|
|
98
|
-
|
|
99
|
-
|
|
77
|
+
await (0, _dbDynamodb.put)({
|
|
78
|
+
entity,
|
|
79
|
+
item: {
|
|
80
|
+
...submission,
|
|
81
|
+
...keys,
|
|
82
|
+
TYPE: createSubmissionType()
|
|
83
|
+
}
|
|
84
|
+
});
|
|
100
85
|
return submission;
|
|
101
86
|
} catch (ex) {
|
|
102
87
|
throw new _error.default(ex.message || "Could not update form submission in the DynamoDB.", ex.code || "UPDATE_FORM_SUBMISSION_ERROR", {
|
|
@@ -107,7 +92,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
107
92
|
});
|
|
108
93
|
}
|
|
109
94
|
};
|
|
110
|
-
|
|
111
95
|
const deleteSubmission = async params => {
|
|
112
96
|
const {
|
|
113
97
|
submission,
|
|
@@ -117,9 +101,11 @@ const createSubmissionStorageOperations = params => {
|
|
|
117
101
|
PK: createSubmissionPartitionKey(form),
|
|
118
102
|
SK: createSubmissionSortKey(submission.id)
|
|
119
103
|
};
|
|
120
|
-
|
|
121
104
|
try {
|
|
122
|
-
await
|
|
105
|
+
await (0, _dbDynamodb.deleteItem)({
|
|
106
|
+
entity,
|
|
107
|
+
keys
|
|
108
|
+
});
|
|
123
109
|
} catch (ex) {
|
|
124
110
|
throw new _error.default(ex.message || "Could not delete form submission from DynamoDB.", ex.code || "DELETE_FORM_SUBMISSION_ERROR", {
|
|
125
111
|
submission,
|
|
@@ -127,10 +113,8 @@ const createSubmissionStorageOperations = params => {
|
|
|
127
113
|
keys
|
|
128
114
|
});
|
|
129
115
|
}
|
|
130
|
-
|
|
131
116
|
return submission;
|
|
132
117
|
};
|
|
133
|
-
|
|
134
118
|
const listSubmissions = async params => {
|
|
135
119
|
const {
|
|
136
120
|
where: initialWhere,
|
|
@@ -138,18 +122,17 @@ const createSubmissionStorageOperations = params => {
|
|
|
138
122
|
limit = 100000,
|
|
139
123
|
after
|
|
140
124
|
} = params;
|
|
141
|
-
|
|
142
|
-
const where = _objectSpread({}, initialWhere);
|
|
143
|
-
|
|
144
125
|
const {
|
|
145
126
|
tenant,
|
|
146
127
|
locale,
|
|
147
128
|
formId
|
|
148
|
-
} =
|
|
129
|
+
} = initialWhere;
|
|
130
|
+
const where = {
|
|
131
|
+
...initialWhere
|
|
132
|
+
};
|
|
149
133
|
/**
|
|
150
134
|
* We need to remove conditions so we do not filter by them again.
|
|
151
135
|
*/
|
|
152
|
-
|
|
153
136
|
delete where.tenant;
|
|
154
137
|
delete where.locale;
|
|
155
138
|
delete where.formId;
|
|
@@ -166,7 +149,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
166
149
|
}
|
|
167
150
|
};
|
|
168
151
|
let results;
|
|
169
|
-
|
|
170
152
|
try {
|
|
171
153
|
results = await (0, _query.queryAll)(queryAllParams);
|
|
172
154
|
} catch (ex) {
|
|
@@ -175,7 +157,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
175
157
|
partitionKey: queryAllParams.partitionKey
|
|
176
158
|
});
|
|
177
159
|
}
|
|
178
|
-
|
|
179
160
|
const fields = plugins.byType(_FormSubmissionDynamoDbFieldPlugin.FormSubmissionDynamoDbFieldPlugin.type);
|
|
180
161
|
const filteredSubmissions = (0, _filter.filterItems)({
|
|
181
162
|
plugins,
|
|
@@ -189,7 +170,7 @@ const createSubmissionStorageOperations = params => {
|
|
|
189
170
|
fields
|
|
190
171
|
});
|
|
191
172
|
const totalCount = sortedSubmissions.length;
|
|
192
|
-
const start = (0, _cursor.decodeCursor)(after) || 0;
|
|
173
|
+
const start = parseInt((0, _cursor.decodeCursor)(after) || "0") || 0;
|
|
193
174
|
const hasMoreItems = totalCount > start + limit;
|
|
194
175
|
const end = limit > totalCount + start + limit ? undefined : start + limit;
|
|
195
176
|
const items = sortedSubmissions.slice(start, end);
|
|
@@ -197,7 +178,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
197
178
|
* Although we do not need a cursor here, we will use it as such to keep it standardized.
|
|
198
179
|
* Number is simply encoded.
|
|
199
180
|
*/
|
|
200
|
-
|
|
201
181
|
const cursor = items.length > 0 ? (0, _cursor.encodeCursor)(start + limit) : null;
|
|
202
182
|
const meta = {
|
|
203
183
|
hasMoreItems,
|
|
@@ -209,7 +189,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
209
189
|
meta
|
|
210
190
|
};
|
|
211
191
|
};
|
|
212
|
-
|
|
213
192
|
const getSubmission = async params => {
|
|
214
193
|
const {
|
|
215
194
|
where
|
|
@@ -218,13 +197,11 @@ const createSubmissionStorageOperations = params => {
|
|
|
218
197
|
PK: createSubmissionPartitionKey(where),
|
|
219
198
|
SK: createSubmissionSortKey(where.id)
|
|
220
199
|
};
|
|
221
|
-
|
|
222
200
|
try {
|
|
223
|
-
|
|
201
|
+
return await (0, _get.getClean)({
|
|
224
202
|
entity,
|
|
225
203
|
keys
|
|
226
204
|
});
|
|
227
|
-
return (0, _cleanup.cleanupItem)(entity, item);
|
|
228
205
|
} catch (ex) {
|
|
229
206
|
throw new _error.default(ex.message || "Could not oad submission.", ex.code || "GET_SUBMISSION_ERROR", {
|
|
230
207
|
where,
|
|
@@ -232,7 +209,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
232
209
|
});
|
|
233
210
|
}
|
|
234
211
|
};
|
|
235
|
-
|
|
236
212
|
return {
|
|
237
213
|
createSubmission,
|
|
238
214
|
deleteSubmission,
|
|
@@ -243,5 +219,6 @@ const createSubmissionStorageOperations = params => {
|
|
|
243
219
|
createSubmissionSortKey
|
|
244
220
|
};
|
|
245
221
|
};
|
|
222
|
+
exports.createSubmissionStorageOperations = createSubmissionStorageOperations;
|
|
246
223
|
|
|
247
|
-
|
|
224
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_utils","_query","_cursor","_sort","_filter","_FormSubmissionDynamoDbFieldPlugin","_get","_dbDynamodb","createSubmissionStorageOperations","params","entity","plugins","createSubmissionPartitionKey","tenant","locale","formId","id","parseIdentifier","createSubmissionSortKey","createSubmissionType","createSubmission","submission","form","keys","PK","SK","put","item","TYPE","ex","WebinyError","message","code","updateSubmission","original","deleteSubmission","deleteItem","listSubmissions","where","initialWhere","sort","limit","after","queryAllParams","partitionKey","options","gte","reverse","results","queryAll","fields","byType","FormSubmissionDynamoDbFieldPlugin","type","filteredSubmissions","filterItems","items","sortedSubmissions","sortItems","totalCount","length","start","parseInt","decodeCursor","hasMoreItems","end","undefined","slice","cursor","encodeCursor","meta","getSubmission","getClean","exports"],"sources":["index.ts"],"sourcesContent":["import type {\n FbSubmission,\n FormBuilderStorageOperationsCreateSubmissionParams,\n FormBuilderStorageOperationsDeleteSubmissionParams,\n FormBuilderStorageOperationsGetSubmissionParams,\n FormBuilderStorageOperationsListSubmissionsParams,\n FormBuilderStorageOperationsListSubmissionsResponse,\n FormBuilderStorageOperationsUpdateSubmissionParams\n} from \"@webiny/api-form-builder/types\";\nimport type { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n FormBuilderSubmissionStorageOperations,\n FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n} from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport type { QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { queryAll } from \"@webiny/db-dynamodb/utils/query\";\nimport { decodeCursor, encodeCursor } from \"@webiny/db-dynamodb/utils/cursor\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { FormSubmissionDynamoDbFieldPlugin } from \"~/plugins/FormSubmissionDynamoDbFieldPlugin\";\nimport { getClean } from \"@webiny/db-dynamodb/utils/get\";\nimport { deleteItem, put } from \"@webiny/db-dynamodb\";\n\nexport interface CreateSubmissionStorageOperationsParams {\n entity: Entity<any>;\n table: Table<string, string, string>;\n plugins: PluginsContainer;\n}\n\nexport const createSubmissionStorageOperations = (\n params: CreateSubmissionStorageOperationsParams\n): FormBuilderSubmissionStorageOperations => {\n const { entity, plugins } = params;\n\n const createSubmissionPartitionKey = (\n params: FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n ) => {\n const { tenant, locale, formId } = params;\n\n const { id } = parseIdentifier(formId);\n\n return `T#${tenant}#L#${locale}#FB#FS#${id}`;\n };\n const createSubmissionSortKey = (id: string) => {\n return id;\n };\n\n const createSubmissionType = () => {\n return \"fb.formSubmission\";\n };\n\n const createSubmission = async (\n params: FormBuilderStorageOperationsCreateSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form } = params;\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await put({\n entity,\n item: {\n ...submission,\n ...keys,\n TYPE: createSubmissionType()\n }\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create form submission in the DynamoDB.\",\n ex.code || \"UPDATE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n\n const updateSubmission = async (\n params: FormBuilderStorageOperationsUpdateSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form, original } = params;\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await put({\n entity,\n item: {\n ...submission,\n ...keys,\n TYPE: createSubmissionType()\n }\n });\n return submission;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update form submission in the DynamoDB.\",\n ex.code || \"UPDATE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n original,\n form,\n keys\n }\n );\n }\n };\n\n const deleteSubmission = async (\n params: FormBuilderStorageOperationsDeleteSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form } = params;\n\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await deleteItem({\n entity,\n keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form submission from DynamoDB.\",\n ex.code || \"DELETE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n\n const listSubmissions = async (\n params: FormBuilderStorageOperationsListSubmissionsParams\n ): Promise<FormBuilderStorageOperationsListSubmissionsResponse> => {\n const { where: initialWhere, sort, limit = 100000, after } = params;\n\n const { tenant, locale, formId } = initialWhere;\n\n const where: Partial<FormBuilderStorageOperationsListSubmissionsParams[\"where\"]> = {\n ...initialWhere\n };\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.tenant;\n delete where.locale;\n delete where.formId;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createSubmissionPartitionKey({\n tenant,\n locale,\n formId\n }),\n options: {\n gte: \" \",\n reverse: true\n }\n };\n\n let results;\n try {\n results = await queryAll<FbSubmission>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list form submissions.\",\n ex.code || \"LIST_SUBMISSIONS_ERROR\",\n {\n where: initialWhere,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n\n const fields = plugins.byType<FormSubmissionDynamoDbFieldPlugin>(\n FormSubmissionDynamoDbFieldPlugin.type\n );\n\n const filteredSubmissions = filterItems({\n plugins,\n items: results,\n where,\n fields\n });\n\n const sortedSubmissions = sortItems({\n items: filteredSubmissions,\n sort,\n fields\n });\n\n const totalCount = sortedSubmissions.length;\n const start = parseInt(decodeCursor(after) || \"0\") || 0;\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = sortedSubmissions.slice(start, end);\n /**\n * Although we do not need a cursor here, we will use it as such to keep it standardized.\n * Number is simply encoded.\n */\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return {\n items,\n meta\n };\n };\n\n const getSubmission = async (\n params: FormBuilderStorageOperationsGetSubmissionParams\n ): Promise<FbSubmission | null> => {\n const { where } = params;\n\n const keys = {\n PK: createSubmissionPartitionKey(where),\n SK: createSubmissionSortKey(where.id)\n };\n\n try {\n return await getClean<FbSubmission>({ entity, keys });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not oad submission.\",\n ex.code || \"GET_SUBMISSION_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n return {\n createSubmission,\n deleteSubmission,\n updateSubmission,\n listSubmissions,\n getSubmission,\n createSubmissionPartitionKey,\n createSubmissionSortKey\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Entity, Table } from "dynamodb
|
|
2
|
-
import { FormBuilderSystemStorageOperations } from "../../types";
|
|
3
|
-
export interface
|
|
1
|
+
import type { Entity, Table } from "@webiny/db-dynamodb/toolbox";
|
|
2
|
+
import type { FormBuilderSystemStorageOperations } from "../../types";
|
|
3
|
+
export interface CreateSystemStorageOperationsParams {
|
|
4
4
|
entity: Entity<any>;
|
|
5
|
-
table: Table
|
|
5
|
+
table: Table<string, string, string>;
|
|
6
6
|
}
|
|
7
|
-
export declare const createSystemStorageOperations: (params:
|
|
7
|
+
export declare const createSystemStorageOperations: (params: CreateSystemStorageOperationsParams) => FormBuilderSystemStorageOperations;
|