storemw-core-api 1.0.78 → 1.0.79

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.
@@ -176,7 +176,7 @@ const InjectionFieldService = (props) => {
176
176
  sqlGroupBy,
177
177
  sqlOrderby,
178
178
  sqlLimitOffset,
179
- skipFilterAccountId: true
179
+ skipFilterAccountId: true // mean any injection fields not matter which account creation
180
180
  });
181
181
  data = await injectionFieldModel.raw(sqlRaw);
182
182
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // mean any injection fields not matter which account creation\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
@@ -114,7 +114,8 @@ const AreaService = (props) => {
114
114
  sqlWhere,
115
115
  sqlGroupBy,
116
116
  sqlOrderby,
117
- sqlLimitOffset
117
+ sqlLimitOffset,
118
+ skipFilterAccountId: true // allow all account can use
118
119
  });
119
120
  data = await areaModel.raw(sqlRaw);
120
121
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"AreaService.js","sourceRoot":"","sources":["../../../src/services/region/AreaService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AreaModel,\n ModelArea,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"area\"\n\nexport const areaDataTypes = {\n}\n\nexport type AreaDataType = keyof typeof areaDataTypes;\n\nexport type AreaServiceProps = DefaultServiceProps & {};\n\nexport type AreaGetProps = QueryGet & {\n id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaListProps = QueryList & {\n // id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaRemoveProps = {\n ids: number[]\n};\n\nexport type AreaCreateProps = {\n data:\n // area\n {\n area: {\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nexport type AreaUpdateProps = {\n id: number\n data:\n // area\n {\n area: {\n areaId?: number,\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: AreaCreateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AreaUpdateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`area.${ModelAreaFields.area_id}`]: \"area_id\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n [`area.${ModelAreaFields.postcode_string}`]: \"postcode_string\",\n [`area.${ModelAreaFields.state_id}`]: \"state_id\",\n [`area.${ModelAreaFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`area.${ModelAreaFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`area.${ModelAreaFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`area.${ModelAreaFields.isdelete}`]: \"isdelete\",\n [`area.${ModelAreaFields.istrash}`]: \"istrash\",\n [`area.${ModelAreaFields.accountid}`]: \"accountid\",\n}\n\nexport const AreaService = (props: AreaServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const areaModel = AreaModel({ ...rest })\n\n const createArea = async ({ data }: AreaCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.create({ data: _data })\n\n return response\n }\n\n const updateArea = async ({ id, data }: AreaUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.update({ id, data: _data })\n\n return response\n }\n\n const getArea = async ({ id, datatypes = [] }: AreaGetProps): Promise<ModelArea | null> => {\n\n let { data } = await listAreas({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAreaFields.area_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelAreaFields.area_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAreas = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: AreaListProps): Promise<{\n data: ModelArea[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(area.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"area\", \"users\", \"creator\", [\"area.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"area\", \"users\", \"updater\", [\"area.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `area.isdelete = false`,\n `area.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"areas\",\n mainAlias: \"area\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await areaModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAreas = async ({ ids }: AreaRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await areaModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(areaDataTypes);\n }\n\n return {\n createArea,\n updateArea,\n getArea,\n listAreas,\n removeAreas,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"AreaService.js","sourceRoot":"","sources":["../../../src/services/region/AreaService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AreaModel,\n ModelArea,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"area\"\n\nexport const areaDataTypes = {\n}\n\nexport type AreaDataType = keyof typeof areaDataTypes;\n\nexport type AreaServiceProps = DefaultServiceProps & {};\n\nexport type AreaGetProps = QueryGet & {\n id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaListProps = QueryList & {\n // id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaRemoveProps = {\n ids: number[]\n};\n\nexport type AreaCreateProps = {\n data:\n // area\n {\n area: {\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nexport type AreaUpdateProps = {\n id: number\n data:\n // area\n {\n area: {\n areaId?: number,\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: AreaCreateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AreaUpdateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`area.${ModelAreaFields.area_id}`]: \"area_id\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n [`area.${ModelAreaFields.postcode_string}`]: \"postcode_string\",\n [`area.${ModelAreaFields.state_id}`]: \"state_id\",\n [`area.${ModelAreaFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`area.${ModelAreaFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`area.${ModelAreaFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`area.${ModelAreaFields.isdelete}`]: \"isdelete\",\n [`area.${ModelAreaFields.istrash}`]: \"istrash\",\n [`area.${ModelAreaFields.accountid}`]: \"accountid\",\n}\n\nexport const AreaService = (props: AreaServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const areaModel = AreaModel({ ...rest })\n\n const createArea = async ({ data }: AreaCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.create({ data: _data })\n\n return response\n }\n\n const updateArea = async ({ id, data }: AreaUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.update({ id, data: _data })\n\n return response\n }\n\n const getArea = async ({ id, datatypes = [] }: AreaGetProps): Promise<ModelArea | null> => {\n\n let { data } = await listAreas({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAreaFields.area_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelAreaFields.area_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAreas = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: AreaListProps): Promise<{\n data: ModelArea[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(area.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"area\", \"users\", \"creator\", [\"area.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"area\", \"users\", \"updater\", [\"area.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `area.isdelete = false`,\n `area.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"areas\",\n mainAlias: \"area\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await areaModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAreas = async ({ ids }: AreaRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await areaModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(areaDataTypes);\n }\n\n return {\n createArea,\n updateArea,\n getArea,\n listAreas,\n removeAreas,\n getDataTypes\n }\n\n}\n\n"]}
@@ -127,7 +127,8 @@ const CountryService = (props) => {
127
127
  sqlWhere,
128
128
  sqlGroupBy,
129
129
  sqlOrderby,
130
- sqlLimitOffset
130
+ sqlLimitOffset,
131
+ skipFilterAccountId: true // allow all account can use
131
132
  });
132
133
  data = await countryModel.raw(sqlRaw);
133
134
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"CountryService.js","sourceRoot":"","sources":["../../../src/services/region/CountryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n CountryModel,\n ModelCountryFields,\n ModelCustomerFields,\n ModelCountry,\n ModelStateFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"country\"\n\nexport const countryDataTypes = {\n stateCount: \"state_count\"\n}\nexport type CountryDataType = keyof typeof countryDataTypes;\n\nexport type CountryServiceProps = DefaultServiceProps & {};\n\nexport type CountryGetProps = QueryGet & {\n id: number,\n datatypes: CountryDataType[]\n};\n\nexport type CountryListProps = QueryList & {\n datatypes: CountryDataType[]\n};\n\nexport type CountryRemoveProps = {\n ids: number[]\n};\n\nexport type CountryCreateProps = {\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nexport type CountryUpdateProps = {\n id: number\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nconst getCreatePayload = (data: CountryCreateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: CountryUpdateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`cou.${ModelCountryFields.country_id}`]: \"country_id\",\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`cou.${ModelCountryFields.phone_code}`]: \"phone_code\",\n [`cou.${ModelCountryFields.sort_name}`]: \"sort_name\",\n [`cou.${ModelCountryFields.status}`]: \"status\"\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`cou.${ModelCustomerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`cou.${ModelCustomerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`cou.${ModelCustomerFields.isdelete}`]: \"isdelete\",\n [`cou.${ModelCustomerFields.istrash}`]: \"istrash\",\n [`cou.${ModelCustomerFields.accountid}`]: \"accountid\",\n}\n\nexport const CountryService = (props: CountryServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const countryModel = CountryModel({ ...rest })\n\n const createCountry = async ({ data }: CountryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.create({ data: _data })\n\n return response\n }\n\n const updateCountry = async ({ id, data }: CountryUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.update({ id, data: _data })\n\n return response\n }\n\n const getCountry = async ({ id, datatypes = [] }: CountryGetProps) => {\n\n let { data } = await listCountries({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCountryFields.country_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCountryFields.country_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCountries = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: CountryListProps): Promise<{\n data: ModelCountry[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(cou.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"cou\", \"users\", \"creator\", [\"cou.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"cou\", \"users\", \"updater\", [\"cou.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(countryDataTypes.stateCount)) {\n\n let stateCountSqlSelect = {\n [`COUNT(DISTINCT statecount.${ModelStateFields.state_id})::INT`]: \"state_count\"\n }\n\n filterColumns = { ...filterColumns, ...stateCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, stateCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cou\", \"states\", \"statecount\", [\"cou.country_id = statecount.country_id\", \"statecount.isdelete = false\", \"statecount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `cou.isdelete = false`,\n `cou.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"countries\",\n mainAlias: \"cou\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await countryModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeCountries = async ({ ids }: CountryRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await countryModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(countryDataTypes);\n }\n\n return {\n createCountry,\n updateCountry,\n getCountry,\n listCountries,\n removeCountries,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"CountryService.js","sourceRoot":"","sources":["../../../src/services/region/CountryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n CountryModel,\n ModelCountryFields,\n ModelCustomerFields,\n ModelCountry,\n ModelStateFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"country\"\n\nexport const countryDataTypes = {\n stateCount: \"state_count\"\n}\nexport type CountryDataType = keyof typeof countryDataTypes;\n\nexport type CountryServiceProps = DefaultServiceProps & {};\n\nexport type CountryGetProps = QueryGet & {\n id: number,\n datatypes: CountryDataType[]\n};\n\nexport type CountryListProps = QueryList & {\n datatypes: CountryDataType[]\n};\n\nexport type CountryRemoveProps = {\n ids: number[]\n};\n\nexport type CountryCreateProps = {\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nexport type CountryUpdateProps = {\n id: number\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nconst getCreatePayload = (data: CountryCreateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: CountryUpdateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`cou.${ModelCountryFields.country_id}`]: \"country_id\",\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`cou.${ModelCountryFields.phone_code}`]: \"phone_code\",\n [`cou.${ModelCountryFields.sort_name}`]: \"sort_name\",\n [`cou.${ModelCountryFields.status}`]: \"status\"\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`cou.${ModelCustomerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`cou.${ModelCustomerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`cou.${ModelCustomerFields.isdelete}`]: \"isdelete\",\n [`cou.${ModelCustomerFields.istrash}`]: \"istrash\",\n [`cou.${ModelCustomerFields.accountid}`]: \"accountid\",\n}\n\nexport const CountryService = (props: CountryServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const countryModel = CountryModel({ ...rest })\n\n const createCountry = async ({ data }: CountryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.create({ data: _data })\n\n return response\n }\n\n const updateCountry = async ({ id, data }: CountryUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.update({ id, data: _data })\n\n return response\n }\n\n const getCountry = async ({ id, datatypes = [] }: CountryGetProps) => {\n\n let { data } = await listCountries({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCountryFields.country_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCountryFields.country_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCountries = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: CountryListProps): Promise<{\n data: ModelCountry[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(cou.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"cou\", \"users\", \"creator\", [\"cou.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"cou\", \"users\", \"updater\", [\"cou.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(countryDataTypes.stateCount)) {\n\n let stateCountSqlSelect = {\n [`COUNT(DISTINCT statecount.${ModelStateFields.state_id})::INT`]: \"state_count\"\n }\n\n filterColumns = { ...filterColumns, ...stateCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, stateCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cou\", \"states\", \"statecount\", [\"cou.country_id = statecount.country_id\", \"statecount.isdelete = false\", \"statecount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `cou.isdelete = false`,\n `cou.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"countries\",\n mainAlias: \"cou\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await countryModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeCountries = async ({ ids }: CountryRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await countryModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(countryDataTypes);\n }\n\n return {\n createCountry,\n updateCountry,\n getCountry,\n listCountries,\n removeCountries,\n getDataTypes\n }\n\n}\n\n"]}
@@ -161,7 +161,8 @@ const StateService = (props) => {
161
161
  sqlWhere,
162
162
  sqlGroupBy,
163
163
  sqlOrderby,
164
- sqlLimitOffset
164
+ sqlLimitOffset,
165
+ skipFilterAccountId: true // allow all account can use
165
166
  });
166
167
  data = await stateModel.raw(sqlRaw);
167
168
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"StateService.js","sourceRoot":"","sources":["../../../src/services/region/StateService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n StateModel,\n ModelStateFields,\n ModelState,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"state\"\n\nexport const stateDataTypes = {\n area: \"area\",\n areaCount: \"area_count\"\n}\nexport type StateDataType = keyof typeof stateDataTypes;\n\nexport type StateServiceProps = DefaultServiceProps & {};\n\nexport type StateGetProps = QueryGet & {\n id: number,\n datatypes: StateDataType[]\n};\n\nexport type StateListProps = QueryList & {\n // id: number,\n datatypes: StateDataType[]\n};\n\n// export type UserRemoveProps = {\n// ids: number[]\n// };\n\nexport type StateCreateProps = {\n data:\n // state\n {\n state: {\n countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateUpdateProps = {\n id: number\n data:\n // state\n {\n state: {\n // countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateRemoveProps = {\n ids: number[]\n};\n\nconst getCreatePayload = (data: StateCreateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\n\nconst getUpdatePayload = (data: StateUpdateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n // country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`state.${ModelStateFields.state_id}`]: \"state_id\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`state.${ModelStateFields.country_id}`]: \"country_id\",\n [`state.${ModelStateFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`state.${ModelStateFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`state.${ModelStateFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`state.${ModelStateFields.isdelete}`]: \"isdelete\",\n [`state.${ModelStateFields.istrash}`]: \"istrash\",\n [`state.${ModelStateFields.accountid}`]: \"accountid\",\n}\n\nexport const StateService = (props: StateServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const stateModel = StateModel({ ...rest })\n\n const createState = async ({ data }: StateCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.create({ data: _data })\n\n return response\n }\n\n const updateState = async ({ id, data }: StateUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.update({ id, data: _data })\n\n return response\n }\n\n const getState = async ({ id, datatypes = [] }: StateGetProps): Promise<ModelState | null> => {\n\n let { data } = await listStates({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelStateFields.state_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelStateFields.state_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listStates = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: StateListProps): Promise<{\n data: ModelState[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(state.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"state\", \"users\", \"creator\", [\"state.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"state\", \"users\", \"updater\", [\"state.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(stateDataTypes.area)) {\n\n let areaSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT area.area_name, ', '),\n ''\n )`]: \"areas_lbl\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelAreaFields.area_id}', area.area_id,\n '${ModelAreaFields.area_name}', area.area_name,\n '${ModelAreaFields.postcode_string}', area.postcode_string,\n '${ModelAreaFields.state_id}', area.state_id,\n '${ModelAreaFields.status}', area.status\n )\n ) FILTER (WHERE area.area_id IS NOT NULL AND area.isdelete = false AND area.istrash = false), \n '[]'\n )`]: \"area\"\n }\n\n filterColumns = { ...filterColumns, ...areaSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"area\", [\"state.state_id = area.state_id\", \"area.isdelete = false\", \"area.istrash = false\"])]\n\n }\n\n if (datatypes.includes(stateDataTypes.areaCount)) {\n\n let areaCountSqlSelect = {\n [`COUNT(DISTINCT areacount.${ModelAreaFields.area_id})::INT`]: \"area_count\"\n }\n\n filterColumns = { ...filterColumns, ...areaCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"areacount\", [\"state.state_id = areacount.state_id\", \"areacount.isdelete = false\", \"areacount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `state.isdelete = false`,\n `state.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"states\",\n mainAlias: \"state\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await stateModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeStates = async ({ ids }: StateRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await stateModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(stateDataTypes);\n }\n\n return {\n createState,\n updateState,\n getState,\n listStates,\n removeStates,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"StateService.js","sourceRoot":"","sources":["../../../src/services/region/StateService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAMkB;AAMlB,+BAAiI;AAIpH,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;CAC1B,CAAA;AA0DD,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAExD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAElB,OAAO;YACH,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,6CAA6C;YAC7C,6BAA6B;YAC7B,yCAAyC;YACzC,+BAA+B;YAC/B,WAAW;SACd,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAGD,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAExD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAElB,OAAO;YACH,WAAW;YACX,oCAAoC;YACpC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,6CAA6C;YAC7C,6BAA6B;YAC7B,yCAAyC;YACzC,+BAA+B;YAC/B,WAAW;SACd,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,SAAS,yBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAClD,CAAC,SAAS,yBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IACtD,CAAC,SAAS,yBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IACtD,CAAC,SAAS,yBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CACjD,CAAA;AAED,wBAAwB;AACxB,mEAAmE;AACnE,yDAAyD;AACzD,yDAAyD;AACzD,uDAAuD;AACvD,qDAAqD;AACrD,iDAAiD;AACjD,qDAAqD;AACrD,mDAAmD;AACnD,IAAI;AAEJ,IAAI,gBAAgB,GAAG;IACnB,CAAC,SAAS,yBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,SAAS,yBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,SAAS,yBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAClD,CAAC,SAAS,yBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAChD,CAAC,SAAS,yBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CACvD,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE;IAErD,MAAM;IACF,UAAU;IACV,iBAAiB;IACjB,mBAAmB;IACnB,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,UAAU,GAAG,IAAA,mBAAU,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE1C,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,IAAI,EAAoB,EAAE,EAAE;QAErD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEzD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAoB,EAAE,EAAE;QAEzD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE7D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAiB,EAA8B,EAAE;QAEzF,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,yBAAgB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC9E,SAAS,EAAE,GAAG,yBAAgB,CAAC,UAAU,EAAE;YAC3C,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,EACtB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACD,EAGd,EAAE;QAED,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,SAAS,GAAG;YACZ,yCAAyC;YACzC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;SACvC,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,sCAAsC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACtJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,sCAAsC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SACzJ,CAAA;QAED,IAAI,UAAU,GAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAE5F,IAAI,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;QAE7D,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAE1C,IAAI,aAAa,GAAG;gBAChB,CAAC;;;kBAGC,CAAC,EAAE,WAAW;gBAChB,CAAC;;;+BAGc,wBAAe,CAAC,OAAO;+BACvB,wBAAe,CAAC,SAAS;+BACzB,wBAAe,CAAC,eAAe;+BAC/B,wBAAe,CAAC,QAAQ;+BACxB,wBAAe,CAAC,MAAM;;;;kBAInC,CAAC,EAAE,MAAM;aACd,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,CAAA;YAEtD,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;YAC7D,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,gCAAgC,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAA;QAE3K,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAE/C,IAAI,kBAAkB,GAAG;gBACrB,CAAC,4BAA4B,wBAAe,CAAC,OAAO,QAAQ,CAAC,EAAE,YAAY;aAC9E,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAA;YAE3D,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;YAClE,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,qCAAqC,EAAE,4BAA4B,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;QAE/L,CAAC;QAED,IAAI,QAAQ,GAAG;YACX,wBAAwB;YACxB,uBAAuB;YACvB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAA;QAED,IAAI,UAAU,GAAG,IAAA,qBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,cAAc,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,mBAAmB,EAAE,IAAI,CAAC,4BAA4B;SACzD,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,GAAG,EAAoB,EAAE,EAAE;QAErD,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAElD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;IACzC,CAAC,CAAA;IAED,OAAO;QACH,WAAW;QACX,WAAW;QACX,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AAjLY,QAAA,YAAY,gBAiLxB","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n StateModel,\n ModelStateFields,\n ModelState,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"state\"\n\nexport const stateDataTypes = {\n area: \"area\",\n areaCount: \"area_count\"\n}\nexport type StateDataType = keyof typeof stateDataTypes;\n\nexport type StateServiceProps = DefaultServiceProps & {};\n\nexport type StateGetProps = QueryGet & {\n id: number,\n datatypes: StateDataType[]\n};\n\nexport type StateListProps = QueryList & {\n // id: number,\n datatypes: StateDataType[]\n};\n\n// export type UserRemoveProps = {\n// ids: number[]\n// };\n\nexport type StateCreateProps = {\n data:\n // state\n {\n state: {\n countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateUpdateProps = {\n id: number\n data:\n // state\n {\n state: {\n // countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateRemoveProps = {\n ids: number[]\n};\n\nconst getCreatePayload = (data: StateCreateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\n\nconst getUpdatePayload = (data: StateUpdateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n // country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`state.${ModelStateFields.state_id}`]: \"state_id\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`state.${ModelStateFields.country_id}`]: \"country_id\",\n [`state.${ModelStateFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`state.${ModelStateFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`state.${ModelStateFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`state.${ModelStateFields.isdelete}`]: \"isdelete\",\n [`state.${ModelStateFields.istrash}`]: \"istrash\",\n [`state.${ModelStateFields.accountid}`]: \"accountid\",\n}\n\nexport const StateService = (props: StateServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const stateModel = StateModel({ ...rest })\n\n const createState = async ({ data }: StateCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.create({ data: _data })\n\n return response\n }\n\n const updateState = async ({ id, data }: StateUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.update({ id, data: _data })\n\n return response\n }\n\n const getState = async ({ id, datatypes = [] }: StateGetProps): Promise<ModelState | null> => {\n\n let { data } = await listStates({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelStateFields.state_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelStateFields.state_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listStates = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: StateListProps): Promise<{\n data: ModelState[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(state.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"state\", \"users\", \"creator\", [\"state.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"state\", \"users\", \"updater\", [\"state.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(stateDataTypes.area)) {\n\n let areaSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT area.area_name, ', '),\n ''\n )`]: \"areas_lbl\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelAreaFields.area_id}', area.area_id,\n '${ModelAreaFields.area_name}', area.area_name,\n '${ModelAreaFields.postcode_string}', area.postcode_string,\n '${ModelAreaFields.state_id}', area.state_id,\n '${ModelAreaFields.status}', area.status\n )\n ) FILTER (WHERE area.area_id IS NOT NULL AND area.isdelete = false AND area.istrash = false), \n '[]'\n )`]: \"area\"\n }\n\n filterColumns = { ...filterColumns, ...areaSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"area\", [\"state.state_id = area.state_id\", \"area.isdelete = false\", \"area.istrash = false\"])]\n\n }\n\n if (datatypes.includes(stateDataTypes.areaCount)) {\n\n let areaCountSqlSelect = {\n [`COUNT(DISTINCT areacount.${ModelAreaFields.area_id})::INT`]: \"area_count\"\n }\n\n filterColumns = { ...filterColumns, ...areaCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"areacount\", [\"state.state_id = areacount.state_id\", \"areacount.isdelete = false\", \"areacount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `state.isdelete = false`,\n `state.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"states\",\n mainAlias: \"state\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await stateModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeStates = async ({ ids }: StateRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await stateModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(stateDataTypes);\n }\n\n return {\n createState,\n updateState,\n getState,\n listStates,\n removeStates,\n getDataTypes\n }\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.78",
3
+ "version": "1.0.79",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",