storemw-core-api 1.0.154 → 1.0.156
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/dist/lib/model_factory/default.d.ts +5 -5
- package/dist/lib/model_factory/default.js +8 -5
- package/dist/lib/model_factory/default.js.map +1 -1
- package/dist/services/access_control/AccessControlRoleService.js +1 -1
- package/dist/services/access_control/AccessControlRoleService.js.map +1 -1
- package/dist/services/access_key/AccessKeyService.js +1 -1
- package/dist/services/access_key/AccessKeyService.js.map +1 -1
- package/dist/services/account/AccountService.js +1 -1
- package/dist/services/account/AccountService.js.map +1 -1
- package/dist/services/business/BusinessService.js +1 -1
- package/dist/services/business/BusinessService.js.map +1 -1
- package/dist/services/injection_field/InjectionFieldService.js +1 -1
- package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
- package/dist/services/item/ItemBrandService.js +1 -1
- package/dist/services/item/ItemBrandService.js.map +1 -1
- package/dist/services/item/ItemCategoryService.js +1 -1
- package/dist/services/item/ItemCategoryService.js.map +1 -1
- package/dist/services/item/ItemItemService.js +1 -1
- package/dist/services/item/ItemItemService.js.map +1 -1
- package/dist/services/item/ItemProductService.js +1 -1
- package/dist/services/item/ItemProductService.js.map +1 -1
- package/dist/services/item/ItemUomService.js +1 -1
- package/dist/services/item/ItemUomService.js.map +1 -1
- package/dist/services/location/LocationLocationService.js +1 -1
- package/dist/services/location/LocationLocationService.js.map +1 -1
- package/dist/services/location/LocationRackService.js +1 -1
- package/dist/services/location/LocationRackService.js.map +1 -1
- package/dist/services/location/LocationSlotService.js +1 -1
- package/dist/services/location/LocationSlotService.js.map +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.js +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
- package/dist/services/region/AreaService.js +1 -1
- package/dist/services/region/AreaService.js.map +1 -1
- package/dist/services/region/CountryService.js +1 -1
- package/dist/services/region/CountryService.js.map +1 -1
- package/dist/services/region/StateService.js +1 -1
- package/dist/services/region/StateService.js.map +1 -1
- package/dist/services/scheduler/SchedulerLogService.js +1 -1
- package/dist/services/scheduler/SchedulerLogService.js.map +1 -1
- package/dist/services/subscription/account/AccountSubscribeService.js +1 -1
- package/dist/services/subscription/account/AccountSubscribeService.js.map +1 -1
- package/dist/services/subscription/plan/SubscribePlanService.js +1 -1
- package/dist/services/subscription/plan/SubscribePlanService.js.map +1 -1
- package/dist/services/user/AdministratorService.js +1 -1
- package/dist/services/user/AdministratorService.js.map +1 -1
- package/dist/services/user/AgentService.js +1 -1
- package/dist/services/user/AgentService.js.map +1 -1
- package/dist/services/user/CustomerService.js +1 -1
- package/dist/services/user/CustomerService.js.map +1 -1
- package/dist/services/user/DriverService.js +1 -1
- package/dist/services/user/DriverService.js.map +1 -1
- package/dist/services/user/MemberService.js +1 -1
- package/dist/services/user/MemberService.js.map +1 -1
- package/dist/services/user/OperatorService.js +1 -1
- package/dist/services/user/OperatorService.js.map +1 -1
- package/dist/services/user/RetailerService.js +1 -1
- package/dist/services/user/RetailerService.js.map +1 -1
- package/dist/services/user/UserService.js +1 -1
- package/dist/services/user/UserService.js.map +1 -1
- package/dist/services/user/WorkerService.js +1 -1
- package/dist/services/user/WorkerService.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocationRackService.js","sourceRoot":"","sources":["../../../src/services/location/LocationRackService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n LocationRackModel,\n ModelLocationRackFields,\n ModelLocationFields,\n ModelLocationSlotFields\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 LocationType = \"rack\"\n\nexport const locationRackDataTypes = {\n}\n\n// export type LocationRackDataType = keyof typeof locationRackDataTypes;\n\nexport type LocationRackServiceProps = DefaultServiceProps & {};\n\nexport type LocationRackGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n // datatypes: LocationRackDataType[]\n};\n\nexport type LocationRackListProps = Omit<QueryList, \"datatypes\"> & {\n // datatypes: LocationRackDataType[]\n};\n\nexport type LocationRackRemoveProps = {\n locationRackIds: BigInt[]\n};\n\nexport type LocationRackCreateProps = {\n data:\n // rack\n {\n rack: {\n // rackId: number\n locationId: number\n isDefault: boolean\n rackName: string\n rackSequence: number\n rackType: \"normal\" | \"reserve\"\n status: boolean\n }\n }\n}\n\nexport type LocationRackUpdateProps = {\n locationRackId: number,\n data:\n // rack\n {\n rack: {\n // rackId: number,\n // locationId: number\n isDefault: boolean\n rackName: string\n rackSequence: number\n rackType: \"normal\" | \"reserve\"\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: LocationRackCreateProps[\"data\"]) => {\n\n if (\"rack\" in data) {\n\n return {\n [`${ModelLocationRackFields.is_default}`]: Boolean(data.rack.isDefault),\n [`${ModelLocationRackFields.location_id}`]: data.rack.locationId,\n [`${ModelLocationRackFields.rack_name}`]: data.rack.rackName,\n [`${ModelLocationRackFields.rack_sequence}`]: data.rack.rackSequence,\n [`${ModelLocationRackFields.rack_type}`]: data.rack.rackType,\n [`${ModelLocationRackFields.status}`]: Boolean(data.rack.status),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: LocationRackUpdateProps[\"data\"]) => {\n\n if (\"rack\" in data) {\n\n return {\n // [`${ModelLocationRackFields.location_id}`]: data.rack.locationId,\n [`${ModelLocationRackFields.is_default}`]: Boolean(data.rack.isDefault),\n [`${ModelLocationRackFields.rack_name}`]: data.rack.rackName,\n [`${ModelLocationRackFields.rack_sequence}`]: data.rack.rackSequence,\n [`${ModelLocationRackFields.rack_type}`]: data.rack.rackType,\n [`${ModelLocationRackFields.status}`]: Boolean(data.rack.status),\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`locr.${ModelLocationRackFields.location_rack_id}`]: \"location_rack_id\",\n [`locr.${ModelLocationRackFields.is_default}`]: \"is_default\",\n [`locr.${ModelLocationRackFields.location_id}`]: \"location_id\",\n [`locr.${ModelLocationRackFields.rack_name}`]: \"rack_name\",\n [`locr.${ModelLocationRackFields.rack_sequence}`]: \"rack_sequence\",\n [`locr.${ModelLocationRackFields.rack_type}`]: \"rack_type\",\n [`locr.${ModelLocationRackFields.status}`]: \"status\"\n}\n\nlet locationSqlSelect = {\n [`locc.${ModelLocationFields.location_code}`]: \"location_code\",\n [`locc.${ModelLocationFields.location_name}`]: \"location_name\",\n [`locc.${ModelLocationFields.location_type}`]: \"location_type\",\n}\n\nlet locationSlotSqlSelect = {\n [`COALESCE(\n STRING_AGG(locslot.${ModelLocationSlotFields.slot_name}::text, ', '),\n ''\n )`]: \"slots_lbl\",\n [`COALESCE(\n STRING_AGG(locslot.${ModelLocationSlotFields.location_slot_id}::text, ', '),\n ''\n )`]: \"slots_ids\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelLocationSlotFields.location_slot_id}', locslot.location_slot_id,\n '${ModelLocationSlotFields.rack_id}', locslot.rack_id,\n '${ModelLocationSlotFields.slot_name}', locslot.slot_name,\n '${ModelLocationSlotFields.slot_sequence}', locslot.slot_sequence,\n '${ModelLocationSlotFields.status}', locslot.status\n )\n ) FILTER (WHERE locslot.rack_id IS NOT NULL AND locslot.isdelete = false AND locslot.istrash = false), \n '[]'\n )`]: \"slots\"\n}\n\nlet defaultSqlSelect = {\n [`locr.${ModelLocationRackFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`locr.${ModelLocationRackFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`locr.${ModelLocationRackFields.isdelete}`]: \"isdelete\",\n [`locr.${ModelLocationRackFields.istrash}`]: \"istrash\",\n [`locr.${ModelLocationRackFields.accountid}`]: \"accountid\",\n}\n\nexport const LocationRackService = (props: LocationRackServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const locationRackModel = LocationRackModel({ ...rest })\n\n const createLocationRack = async ({ data }: LocationRackCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create location rack payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationRackModel.create({ data: _data })\n\n return response\n }\n\n const updateLocationRack = async ({ locationRackId, data }: LocationRackUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update location rack payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationRackModel.update({ where: { [`${ModelLocationRackFields.location_rack_id}`]: locationRackId }, data: _data })\n\n return response\n }\n\n const getLocationRack = async ({ id }: LocationRackGetProps) => {\n\n let { data } = await listLocationRacks({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelLocationRackFields.location_rack_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelLocationRackFields.location_rack_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listLocationRacks = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: LocationRackListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(locr.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, locationSqlSelect),\n buildSqlSelect(``, locationSlotSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"locr\", \"locations\", \"locc\", [\"locr.location_id = locc.location_id\", \"locc.isdelete = false\", \"locc.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"location_slots\", \"locslot\", [\"locr.location_rack_id = locslot.rack_id\", \"locslot.isdelete = false\", \"locslot.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"users\", \"creator\", [\"locr.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"users\", \"updater\", [\"locr.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(locationSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...locationSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `locr.isdelete = false`,\n `locr.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: \"location_racks\",\n mainAlias: \"locr\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await locationRackModel.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 removeLocationRacks = async ({ locationRackIds }: LocationRackRemoveProps) => {\n\n if (!locationRackIds.length) throwError('locationRackIds is required');\n\n const response = await locationRackModel.remove({ where: { [`${ModelLocationRackFields.location_rack_id}`]: { in: locationRackIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(locationRackDataTypes);\n }\n\n return {\n createLocationRack,\n updateLocationRack,\n getLocationRack,\n listLocationRacks,\n removeLocationRacks,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"LocationRackService.js","sourceRoot":"","sources":["../../../src/services/location/LocationRackService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n LocationRackModel,\n ModelLocationRackFields,\n ModelLocationFields,\n ModelLocationSlotFields\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 LocationType = \"rack\"\n\nexport const locationRackDataTypes = {\n}\n\n// export type LocationRackDataType = keyof typeof locationRackDataTypes;\n\nexport type LocationRackServiceProps = DefaultServiceProps & {};\n\nexport type LocationRackGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n // datatypes: LocationRackDataType[]\n};\n\nexport type LocationRackListProps = Omit<QueryList, \"datatypes\"> & {\n // datatypes: LocationRackDataType[]\n};\n\nexport type LocationRackRemoveProps = {\n locationRackIds: BigInt[]\n};\n\nexport type LocationRackCreateProps = {\n data:\n // rack\n {\n rack: {\n // rackId: number\n locationId: number\n isDefault: boolean\n rackName: string\n rackSequence: number\n rackType: \"normal\" | \"reserve\"\n status: boolean\n }\n }\n}\n\nexport type LocationRackUpdateProps = {\n locationRackId: number,\n data:\n // rack\n {\n rack: {\n // rackId: number,\n // locationId: number\n isDefault: boolean\n rackName: string\n rackSequence: number\n rackType: \"normal\" | \"reserve\"\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: LocationRackCreateProps[\"data\"]) => {\n\n if (\"rack\" in data) {\n\n return {\n [`${ModelLocationRackFields.is_default}`]: Boolean(data.rack.isDefault),\n [`${ModelLocationRackFields.location_id}`]: data.rack.locationId,\n [`${ModelLocationRackFields.rack_name}`]: data.rack.rackName,\n [`${ModelLocationRackFields.rack_sequence}`]: data.rack.rackSequence,\n [`${ModelLocationRackFields.rack_type}`]: data.rack.rackType,\n [`${ModelLocationRackFields.status}`]: Boolean(data.rack.status),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: LocationRackUpdateProps[\"data\"]) => {\n\n if (\"rack\" in data) {\n\n return {\n // [`${ModelLocationRackFields.location_id}`]: data.rack.locationId,\n [`${ModelLocationRackFields.is_default}`]: Boolean(data.rack.isDefault),\n [`${ModelLocationRackFields.rack_name}`]: data.rack.rackName,\n [`${ModelLocationRackFields.rack_sequence}`]: data.rack.rackSequence,\n [`${ModelLocationRackFields.rack_type}`]: data.rack.rackType,\n [`${ModelLocationRackFields.status}`]: Boolean(data.rack.status),\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`locr.${ModelLocationRackFields.location_rack_id}`]: \"location_rack_id\",\n [`locr.${ModelLocationRackFields.is_default}`]: \"is_default\",\n [`locr.${ModelLocationRackFields.location_id}`]: \"location_id\",\n [`locr.${ModelLocationRackFields.rack_name}`]: \"rack_name\",\n [`locr.${ModelLocationRackFields.rack_sequence}`]: \"rack_sequence\",\n [`locr.${ModelLocationRackFields.rack_type}`]: \"rack_type\",\n [`locr.${ModelLocationRackFields.status}`]: \"status\"\n}\n\nlet locationSqlSelect = {\n [`locc.${ModelLocationFields.location_code}`]: \"location_code\",\n [`locc.${ModelLocationFields.location_name}`]: \"location_name\",\n [`locc.${ModelLocationFields.location_type}`]: \"location_type\",\n}\n\nlet locationSlotSqlSelect = {\n [`COALESCE(\n STRING_AGG(locslot.${ModelLocationSlotFields.slot_name}::text, ', '),\n ''\n )`]: \"slots_lbl\",\n [`COALESCE(\n STRING_AGG(locslot.${ModelLocationSlotFields.location_slot_id}::text, ', '),\n ''\n )`]: \"slots_ids\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelLocationSlotFields.location_slot_id}', locslot.location_slot_id,\n '${ModelLocationSlotFields.rack_id}', locslot.rack_id,\n '${ModelLocationSlotFields.slot_name}', locslot.slot_name,\n '${ModelLocationSlotFields.slot_sequence}', locslot.slot_sequence,\n '${ModelLocationSlotFields.status}', locslot.status\n )\n ) FILTER (WHERE locslot.rack_id IS NOT NULL AND locslot.isdelete = false AND locslot.istrash = false), \n '[]'\n )`]: \"slots\"\n}\n\nlet defaultSqlSelect = {\n [`locr.${ModelLocationRackFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`locr.${ModelLocationRackFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`locr.${ModelLocationRackFields.isdelete}`]: \"isdelete\",\n [`locr.${ModelLocationRackFields.istrash}`]: \"istrash\",\n [`locr.${ModelLocationRackFields.accountid}`]: \"accountid\",\n}\n\nexport const LocationRackService = (props: LocationRackServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const locationRackModel = LocationRackModel({ ...rest })\n\n const createLocationRack = async ({ data }: LocationRackCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create location rack payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationRackModel.create({ data: _data })\n\n return response\n }\n\n const updateLocationRack = async ({ locationRackId, data }: LocationRackUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update location rack payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationRackModel.update({ where: { [`${ModelLocationRackFields.location_rack_id}`]: locationRackId }, data: _data })\n\n return response\n }\n\n const getLocationRack = async ({ id }: LocationRackGetProps) => {\n\n let { data } = await listLocationRacks({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelLocationRackFields.location_rack_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelLocationRackFields.location_rack_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listLocationRacks = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: LocationRackListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, locationSqlSelect),\n buildSqlSelect(``, locationSlotSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"locr\", \"locations\", \"locc\", [\"locr.location_id = locc.location_id\", \"locc.isdelete = false\", \"locc.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"location_slots\", \"locslot\", [\"locr.location_rack_id = locslot.rack_id\", \"locslot.isdelete = false\", \"locslot.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"users\", \"creator\", [\"locr.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"locr\", \"users\", \"updater\", [\"locr.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(locationSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...locationSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `locr.isdelete = false`,\n `locr.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: \"location_racks\",\n mainAlias: \"locr\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await locationRackModel.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 removeLocationRacks = async ({ locationRackIds }: LocationRackRemoveProps) => {\n\n if (!locationRackIds.length) throwError('locationRackIds is required');\n\n const response = await locationRackModel.remove({ where: { [`${ModelLocationRackFields.location_rack_id}`]: { in: locationRackIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(locationRackDataTypes);\n }\n\n return {\n createLocationRack,\n updateLocationRack,\n getLocationRack,\n listLocationRacks,\n removeLocationRacks,\n getDataTypes\n }\n\n}\n\n"]}
|
|
@@ -81,7 +81,7 @@ const LocationSlotService = (props) => {
|
|
|
81
81
|
}) => {
|
|
82
82
|
let data = [];
|
|
83
83
|
let sqlSelect = [
|
|
84
|
-
`COUNT(
|
|
84
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
85
85
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
86
86
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
87
87
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocationSlotService.js","sourceRoot":"","sources":["../../../src/services/location/LocationSlotService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAIkB;AAMlB,+BAAiI;AAIpH,QAAA,qBAAqB,GAAG,EACpC,CAAA;AAiDD,MAAM,gBAAgB,GAAG,CAAC,IAAqC,EAAE,EAAE;IAE/D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAEjB,OAAO;YACH,CAAC,GAAG,gCAAuB,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACvE,CAAC,GAAG,gCAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxD,CAAC,GAAG,gCAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5D,CAAC,GAAG,gCAAuB,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpE,CAAC,GAAG,gCAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SACnE,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAqC,EAAE,EAAE;IAE/D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAEjB,OAAO;YACH,4DAA4D;YAC5D,CAAC,GAAG,gCAAuB,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACvE,CAAC,GAAG,gCAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5D,CAAC,GAAG,gCAAuB,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpE,CAAC,GAAG,gCAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SACnE,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,WAAW,gCAAuB,CAAC,gBAAgB,EAAE,CAAC,EAAE,kBAAkB;IAC3E,CAAC,WAAW,gCAAuB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IAC/D,CAAC,WAAW,gCAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACzD,CAAC,WAAW,gCAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC7D,CAAC,WAAW,gCAAuB,CAAC,aAAa,EAAE,CAAC,EAAE,eAAe;IACrE,CAAC,WAAW,gCAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CAC1D,CAAA;AAED,IAAI,gBAAgB,GAAG;IACnB,CAAC,WAAW,gCAAuB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACvE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,WAAW,gCAAuB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACvE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,WAAW,gCAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC3D,CAAC,WAAW,gCAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACzD,CAAC,WAAW,gCAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CAChE,CAAA;AAEM,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IAEnE,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,iBAAiB,GAAG,IAAA,0BAAiB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAExD,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,IAAI,EAA2B,EAAE,EAAE;QAEnE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE9D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAA2B,EAAE,EAAE;QAEnF,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,gCAAuB,CAAC,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE1I,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,EAAE,EAAE,EAAwB,EAAE,EAAE;QAE3D,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,gCAAuB,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC7F,SAAS,EAAE,GAAG,gCAAuB,CAAC,gBAAgB,EAAE;YACxD,SAAS,EAAE,KAAK;YAChB,gBAAgB;SACnB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAC7B,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS;IACT,iBAAiB;MACG,EAAE,EAAE;QAExB,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,SAAS,GAAG;YACZ,2CAA2C;YAC3C,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,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,wCAAwC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YAC1J,IAAA,sBAAgB,EAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,wCAAwC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SAC7J,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,QAAQ,GAAG;YACX,0BAA0B;YAC1B,yBAAyB;YACzB,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,gBAAgB;YAC3B,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE1C,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,mBAAmB,GAAG,KAAK,EAAE,EAAE,eAAe,EAA2B,EAAE,EAAE;QAE/E,IAAI,CAAC,eAAe,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,6BAA6B,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,gCAAuB,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzI,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,6BAAqB,CAAC,CAAC;IAChD,CAAC,CAAA;IAED,OAAO;QACH,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AAjIY,QAAA,mBAAmB,uBAiI/B","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n LocationSlotModel,\n ModelLocationSlotFields\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 LocationType = \"slot\"\n\nexport const locationSlotDataTypes = {\n}\n\n// export type LocationSlotDataType = keyof typeof locationSlotDataTypes;\n\nexport type LocationSlotServiceProps = DefaultServiceProps & {};\n\nexport type LocationSlotGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n // datatypes: LocationSlotDataType[]\n};\n\nexport type LocationSlotListProps = Omit<QueryList, \"datatypes\"> & {\n // datatypes: LocationSlotDataType[]\n};\n\nexport type LocationSlotRemoveProps = {\n locationSlotIds: BigInt[]\n};\n\nexport type LocationSlotCreateProps = {\n data:\n // slot\n {\n slot: {\n rackId: number\n slotName: string\n slotSequence: number\n isDefault: boolean\n status: boolean\n }\n }\n}\n\nexport type LocationSlotUpdateProps = {\n locationSlotId: number,\n data:\n // slot\n {\n slot: {\n // rackId: number\n locationSlotId?: number,\n isDefault: boolean\n slotName: string\n slotSequence: number\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: LocationSlotCreateProps[\"data\"]) => {\n\n if (\"slot\" in data) {\n\n return {\n [`${ModelLocationSlotFields.is_default}`]: Boolean(data.slot.isDefault),\n [`${ModelLocationSlotFields.rack_id}`]: data.slot.rackId,\n [`${ModelLocationSlotFields.slot_name}`]: data.slot.slotName,\n [`${ModelLocationSlotFields.slot_sequence}`]: data.slot.slotSequence,\n [`${ModelLocationSlotFields.status}`]: Boolean(data.slot.status)\n }\n }\n\n return false\n}\n\nconst getUpdatePayload = (data: LocationSlotUpdateProps[\"data\"]) => {\n\n if (\"slot\" in data) {\n\n return {\n // [`${ModelLocationSlotFields.rack_id}`]: data.slot.rackId,\n [`${ModelLocationSlotFields.is_default}`]: Boolean(data.slot.isDefault),\n [`${ModelLocationSlotFields.slot_name}`]: data.slot.slotName,\n [`${ModelLocationSlotFields.slot_sequence}`]: data.slot.slotSequence,\n [`${ModelLocationSlotFields.status}`]: Boolean(data.slot.status),\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`locslot.${ModelLocationSlotFields.location_slot_id}`]: \"location_slot_id\",\n [`locslot.${ModelLocationSlotFields.is_default}`]: \"is_default\",\n [`locslot.${ModelLocationSlotFields.rack_id}`]: \"rack_id\",\n [`locslot.${ModelLocationSlotFields.slot_name}`]: \"slot_name\",\n [`locslot.${ModelLocationSlotFields.slot_sequence}`]: \"slot_sequence\",\n [`locslot.${ModelLocationSlotFields.status}`]: \"status\"\n}\n\nlet defaultSqlSelect = {\n [`locslot.${ModelLocationSlotFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`locslot.${ModelLocationSlotFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`locslot.${ModelLocationSlotFields.isdelete}`]: \"isdelete\",\n [`locslot.${ModelLocationSlotFields.istrash}`]: \"istrash\",\n [`locslot.${ModelLocationSlotFields.accountid}`]: \"accountid\",\n}\n\nexport const LocationSlotService = (props: LocationSlotServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const locationSlotModel = LocationSlotModel({ ...rest })\n\n const createLocationSlot = async ({ data }: LocationSlotCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create location slot payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationSlotModel.create({ data: _data })\n\n return response\n }\n\n const updateLocationSlot = async ({ locationSlotId, data }: LocationSlotUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update location slot payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationSlotModel.update({ where: { [`${ModelLocationSlotFields.location_slot_id}`]: locationSlotId }, data: _data })\n\n return response\n }\n\n const getLocationSlot = async ({ id }: LocationSlotGetProps) => {\n\n let { data } = await listLocationSlots({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelLocationSlotFields.location_slot_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelLocationSlotFields.location_slot_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listLocationSlots = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: LocationSlotListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(locslot.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"locslot\", \"users\", \"creator\", [\"locslot.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"locslot\", \"users\", \"updater\", [\"locslot.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 `locslot.isdelete = false`,\n `locslot.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: \"location_slots\",\n mainAlias: \"locslot\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await locationSlotModel.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 removeLocationSlots = async ({ locationSlotIds }: LocationSlotRemoveProps) => {\n\n if (!locationSlotIds.length) throwError('locationSlotIds is required');\n\n const response = await locationSlotModel.remove({ where: { [`${ModelLocationSlotFields.location_slot_id}`]: { in: locationSlotIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(locationSlotDataTypes);\n }\n\n return {\n createLocationSlot,\n updateLocationSlot,\n getLocationSlot,\n listLocationSlots,\n removeLocationSlots,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"LocationSlotService.js","sourceRoot":"","sources":["../../../src/services/location/LocationSlotService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n LocationSlotModel,\n ModelLocationSlotFields\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 LocationType = \"slot\"\n\nexport const locationSlotDataTypes = {\n}\n\n// export type LocationSlotDataType = keyof typeof locationSlotDataTypes;\n\nexport type LocationSlotServiceProps = DefaultServiceProps & {};\n\nexport type LocationSlotGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n // datatypes: LocationSlotDataType[]\n};\n\nexport type LocationSlotListProps = Omit<QueryList, \"datatypes\"> & {\n // datatypes: LocationSlotDataType[]\n};\n\nexport type LocationSlotRemoveProps = {\n locationSlotIds: BigInt[]\n};\n\nexport type LocationSlotCreateProps = {\n data:\n // slot\n {\n slot: {\n rackId: number\n slotName: string\n slotSequence: number\n isDefault: boolean\n status: boolean\n }\n }\n}\n\nexport type LocationSlotUpdateProps = {\n locationSlotId: number,\n data:\n // slot\n {\n slot: {\n // rackId: number\n locationSlotId?: number,\n isDefault: boolean\n slotName: string\n slotSequence: number\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: LocationSlotCreateProps[\"data\"]) => {\n\n if (\"slot\" in data) {\n\n return {\n [`${ModelLocationSlotFields.is_default}`]: Boolean(data.slot.isDefault),\n [`${ModelLocationSlotFields.rack_id}`]: data.slot.rackId,\n [`${ModelLocationSlotFields.slot_name}`]: data.slot.slotName,\n [`${ModelLocationSlotFields.slot_sequence}`]: data.slot.slotSequence,\n [`${ModelLocationSlotFields.status}`]: Boolean(data.slot.status)\n }\n }\n\n return false\n}\n\nconst getUpdatePayload = (data: LocationSlotUpdateProps[\"data\"]) => {\n\n if (\"slot\" in data) {\n\n return {\n // [`${ModelLocationSlotFields.rack_id}`]: data.slot.rackId,\n [`${ModelLocationSlotFields.is_default}`]: Boolean(data.slot.isDefault),\n [`${ModelLocationSlotFields.slot_name}`]: data.slot.slotName,\n [`${ModelLocationSlotFields.slot_sequence}`]: data.slot.slotSequence,\n [`${ModelLocationSlotFields.status}`]: Boolean(data.slot.status),\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`locslot.${ModelLocationSlotFields.location_slot_id}`]: \"location_slot_id\",\n [`locslot.${ModelLocationSlotFields.is_default}`]: \"is_default\",\n [`locslot.${ModelLocationSlotFields.rack_id}`]: \"rack_id\",\n [`locslot.${ModelLocationSlotFields.slot_name}`]: \"slot_name\",\n [`locslot.${ModelLocationSlotFields.slot_sequence}`]: \"slot_sequence\",\n [`locslot.${ModelLocationSlotFields.status}`]: \"status\"\n}\n\nlet defaultSqlSelect = {\n [`locslot.${ModelLocationSlotFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`locslot.${ModelLocationSlotFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`locslot.${ModelLocationSlotFields.isdelete}`]: \"isdelete\",\n [`locslot.${ModelLocationSlotFields.istrash}`]: \"istrash\",\n [`locslot.${ModelLocationSlotFields.accountid}`]: \"accountid\",\n}\n\nexport const LocationSlotService = (props: LocationSlotServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const locationSlotModel = LocationSlotModel({ ...rest })\n\n const createLocationSlot = async ({ data }: LocationSlotCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create location slot payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationSlotModel.create({ data: _data })\n\n return response\n }\n\n const updateLocationSlot = async ({ locationSlotId, data }: LocationSlotUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update location slot payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await locationSlotModel.update({ where: { [`${ModelLocationSlotFields.location_slot_id}`]: locationSlotId }, data: _data })\n\n return response\n }\n\n const getLocationSlot = async ({ id }: LocationSlotGetProps) => {\n\n let { data } = await listLocationSlots({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelLocationSlotFields.location_slot_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelLocationSlotFields.location_slot_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listLocationSlots = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: LocationSlotListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"locslot\", \"users\", \"creator\", [\"locslot.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"locslot\", \"users\", \"updater\", [\"locslot.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 `locslot.isdelete = false`,\n `locslot.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: \"location_slots\",\n mainAlias: \"locslot\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await locationSlotModel.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 removeLocationSlots = async ({ locationSlotIds }: LocationSlotRemoveProps) => {\n\n if (!locationSlotIds.length) throwError('locationSlotIds is required');\n\n const response = await locationSlotModel.remove({ where: { [`${ModelLocationSlotFields.location_slot_id}`]: { in: locationSlotIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(locationSlotDataTypes);\n }\n\n return {\n createLocationSlot,\n updateLocationSlot,\n getLocationSlot,\n listLocationSlots,\n removeLocationSlots,\n getDataTypes\n }\n\n}\n\n"]}
|
|
@@ -112,7 +112,7 @@ const OneTimeCodeService = (props) => {
|
|
|
112
112
|
const listOneTimeCodes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [], revealCode = false }) => {
|
|
113
113
|
let data = [];
|
|
114
114
|
let sqlSelect = [
|
|
115
|
-
`COUNT(
|
|
115
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
116
116
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
117
117
|
...(revealCode === true ? [(0, lib_1.buildSqlSelect)(``, mainCodeSqlSelect)] : []),
|
|
118
118
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneTimeCodeService.js","sourceRoot":"","sources":["../../../src/services/one_time_code/OneTimeCodeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OneTimeCodeModel,\n ModelOneTimeCodeFields,\n ModelUserFields,\n} from \"@/models\";\n\nimport crypto from \"crypto\";\nimport { dayjs } from \"@/utils\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { InjectionFieldModuleRef } from \"@/services\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, throwError } from \"@/utils\";\n\nexport type OneTimeCodeModuleRef = InjectionFieldModuleRef\n\nexport type OneTimeCodeServiceProps = DefaultServiceProps & OneTimeCodeModuleRef & {\n};\n\nexport const oneTimeCodeTypes = {\n token: \"token\",\n otp: \"otp\"\n} as const\n\nexport type OneTimeCodeType = typeof oneTimeCodeTypes[keyof typeof oneTimeCodeTypes]\n\nexport const oneTimeCodeStatus = {\n active: \"active\",\n used: \"used\",\n revoked: \"revoked\"\n} as const\n\nexport type OneTimeCodeStatus = typeof oneTimeCodeStatus[keyof typeof oneTimeCodeStatus]\n\nexport const oneTimeCodePurposeTypes = {\n reset_password: \"reset_password\",\n signup_account: \"signup_account\"\n} as const\n\nexport type OneTimeCodePurposeType = typeof oneTimeCodePurposeTypes[keyof typeof oneTimeCodePurposeTypes]\n\nexport type OneTimeCodeCreateProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType,\n codeType: OneTimeCodeType,\n expiredAt?: Date,\n mobileNumber?: string,\n emailAddress?: string,\n userId?: number\n userType?: string\n }\n}\n\nexport type OneTimeCodeGetProps = QueryGet & {\n id: number,\n};\n\nexport type OneTimeCodeListProps = QueryList & {\n revealCode?: boolean\n};\n\nexport type OneTimeCodeConsumeProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType\n oneTimeCode: string\n userId?: number\n userType?: string\n }\n}\n\nconst getCreatePayload = async (\n fieldRef: OneTimeCodeCreateProps[\"field_ref\"],\n fieldModule: OneTimeCodeCreateProps[\"field_module\"],\n data: OneTimeCodeCreateProps[\"data\"],\n code: string,\n) => {\n\n let expiredAt = data?.expiredAt ?? \"\"\n\n if (!expiredAt) {\n // Set expiration 15 minutes from now - Default\n expiredAt = dayjs().add(15, \"minute\").toDate(); // convert to JS Date\n }\n\n return {\n [`${ModelOneTimeCodeFields.code_type}`]: data.codeType,\n [`${ModelOneTimeCodeFields.code}`]: code,\n [`${ModelOneTimeCodeFields.expires_at}`]: expiredAt,\n [`${ModelOneTimeCodeFields.mobile_number}`]: data.mobileNumber ?? \"\",\n [`${ModelOneTimeCodeFields.email_address}`]: data.emailAddress ?? \"\",\n [`${ModelOneTimeCodeFields.field_ref}`]: fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: fieldModule,\n [`${ModelOneTimeCodeFields.user_id}`]: data?.userId ?? 0,\n [`${ModelOneTimeCodeFields.user_type}`]: data?.userType ?? \"\",\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType ?? \"\"\n }\n\n}\n\nlet mainSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.one_time_code_id}`]: \"one_time_code_id\",\n [`otp.${ModelOneTimeCodeFields.purpose_type}`]: \"purpose_type\",\n [`otp.${ModelOneTimeCodeFields.code_status}`]: \"code_status\",\n [`otp.${ModelOneTimeCodeFields.code_type}`]: \"code_type\",\n [`otp.${ModelOneTimeCodeFields.email_address}`]: \"email_address\",\n [`otp.${ModelOneTimeCodeFields.mobile_number}`]: \"mobile_number\",\n [`otp.${ModelOneTimeCodeFields.expires_at}`]: \"expires_at\",\n [`otp.${ModelOneTimeCodeFields.used_at}`]: \"used_at\",\n [`otp.${ModelOneTimeCodeFields.field_module}`]: \"field_module\",\n [`otp.${ModelOneTimeCodeFields.field_ref}`]: \"field_ref\",\n [`otp.${ModelOneTimeCodeFields.user_id}`]: \"user_id\",\n [`otp.${ModelOneTimeCodeFields.user_type}`]: \"user_type\",\n}\n\nlet mainCodeSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.code}`]: \"code\"\n}\n\nlet defaultSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`otp.${ModelOneTimeCodeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`otp.${ModelOneTimeCodeFields.isdelete}`]: \"isdelete\",\n [`otp.${ModelOneTimeCodeFields.istrash}`]: \"istrash\",\n [`otp.${ModelOneTimeCodeFields.accountid}`]: \"accountid\",\n}\n\nexport const OneTimeCodeService = (props: OneTimeCodeServiceProps) => {\n\n const {\n field_ref = \"document\",\n field_module = \"sales\",\n ...rest\n } = props\n\n const oneTimeCodeModel = OneTimeCodeModel({ ...rest })\n\n const generateOneTimeCode = ({\n codeType = \"otp\"\n }: {\n codeType: OneTimeCodeType\n }) => {\n\n if (codeType === \"otp\") {\n // Generate 6-digit numeric OTP\n const otp = Math.floor(100000 + Math.random() * 900000);\n return otp.toString();\n } else if (codeType === \"token\") {\n // Generate secure random 32-character alphanumeric token\n return crypto.randomBytes(16).toString(\"hex\"); // 16 bytes = 32 hex chars\n }\n\n throw new Error(`Unsupported codeType: ${codeType}`);\n\n }\n\n const createOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeCreateProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n const oneTimeCode = generateOneTimeCode({\n codeType: data.codeType\n })\n\n const _data = await getCreatePayload(\n _fieldRef,\n _fieldModule,\n data,\n oneTimeCode\n )\n\n if (!_data) {\n throw new Error(`Invalid create one time code payload: ${JSON.stringify(_data)}`);\n }\n\n // create one time code\n let response = await oneTimeCodeModel.create({ data: _data })\n\n return response\n }\n\n const getOneTimeCode = async ({ id, datatypes = [] }: OneTimeCodeGetProps) => {\n\n let { data } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOneTimeCodeFields.one_time_code_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes,\n revealCode: false\n })\n\n return data[0] ?? null;\n\n };\n\n const listOneTimeCodes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [], revealCode = false }: OneTimeCodeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(otp.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n ...(revealCode === true ? [buildSqlSelect(``, mainCodeSqlSelect)] : []),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"otp\", \"accounts\", \"acc\", [\"otp.accountid = acc.account_id\", \"acc.isdelete = false\", \"acc.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"creator\", [\"otp.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"updater\", [\"otp.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...(revealCode === true ? Object.keys(mainCodeSqlSelect) : []),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...(revealCode === true ? mainCodeSqlSelect : {}),\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `otp.isdelete = false`,\n `otp.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: \"one_time_codes\",\n mainAlias: \"otp\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n })\n\n data = await oneTimeCodeModel.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 consumeOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeConsumeProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n // retrive the one time code\n const { data: findOneTimeCodes } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.field_ref}`,\n operator: \"=\",\n value: `${_fieldRef}`\n },\n {\n field: `${ModelOneTimeCodeFields.field_module}`,\n operator: \"=\",\n value: `${_fieldModule}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${data.purposeType}`\n },\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${data.oneTimeCode}`\n },\n ...(\n data?.userId ? [{\n field: `${ModelOneTimeCodeFields.user_id}`,\n operator: \"=\",\n value: `${data.userId}`\n }] as OneTimeCodeListProps['filters'] : []\n ),\n ...(\n data?.userType ? [{\n field: `${ModelOneTimeCodeFields.user_type}`,\n operator: \"=\",\n value: `${data.userType}`\n }] as OneTimeCodeListProps['filters'] : []\n )\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true\n })\n\n const findOneTimeCode = findOneTimeCodes.length > 0 ? findOneTimeCodes[0] : {}\n const findOneTimeCodeId = Number(findOneTimeCode?.one_time_code_id ?? \"\")\n\n if (!findOneTimeCodeId) {\n throw new Error(`Invalid one time code: ${data.oneTimeCode}`);\n }\n\n const findOneTimeCodeStatus = findOneTimeCode?.code_status\n\n if (findOneTimeCodeStatus !== oneTimeCodeStatus.active) {\n throw new Error(`One time code is not active: ${data.oneTimeCode}`);\n }\n\n const currentDateTimeISO = getCurrentDateTimeISO()\n\n // mark one time code as used\n await oneTimeCodeModel.update({\n id: findOneTimeCodeId,\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.used,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n }\n })\n\n // revoke all related ACTIVE one time codes\n await oneTimeCodeModel.update({\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.revoked,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n },\n where: {\n [`${ModelOneTimeCodeFields.field_ref}`]: _fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: _fieldModule,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType,\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n ...(data?.userId ? {\n [`${ModelOneTimeCodeFields.user_id}`]: data.userId,\n } : {}),\n ...(data?.userType ? {\n [`${ModelOneTimeCodeFields.user_type}`]: data.userType,\n } : {}),\n },\n disableRollback: true\n })\n\n let response = await getOneTimeCode({ id: findOneTimeCodeId, datatypes: [] })\n\n return response\n }\n\n return {\n createOneTimeCode,\n getOneTimeCode,\n listOneTimeCodes,\n consumeOneTimeCode\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"OneTimeCodeService.js","sourceRoot":"","sources":["../../../src/services/one_time_code/OneTimeCodeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OneTimeCodeModel,\n ModelOneTimeCodeFields,\n ModelUserFields,\n} from \"@/models\";\n\nimport crypto from \"crypto\";\nimport { dayjs } from \"@/utils\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { InjectionFieldModuleRef } from \"@/services\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, throwError } from \"@/utils\";\n\nexport type OneTimeCodeModuleRef = InjectionFieldModuleRef\n\nexport type OneTimeCodeServiceProps = DefaultServiceProps & OneTimeCodeModuleRef & {\n};\n\nexport const oneTimeCodeTypes = {\n token: \"token\",\n otp: \"otp\"\n} as const\n\nexport type OneTimeCodeType = typeof oneTimeCodeTypes[keyof typeof oneTimeCodeTypes]\n\nexport const oneTimeCodeStatus = {\n active: \"active\",\n used: \"used\",\n revoked: \"revoked\"\n} as const\n\nexport type OneTimeCodeStatus = typeof oneTimeCodeStatus[keyof typeof oneTimeCodeStatus]\n\nexport const oneTimeCodePurposeTypes = {\n reset_password: \"reset_password\",\n signup_account: \"signup_account\"\n} as const\n\nexport type OneTimeCodePurposeType = typeof oneTimeCodePurposeTypes[keyof typeof oneTimeCodePurposeTypes]\n\nexport type OneTimeCodeCreateProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType,\n codeType: OneTimeCodeType,\n expiredAt?: Date,\n mobileNumber?: string,\n emailAddress?: string,\n userId?: number\n userType?: string\n }\n}\n\nexport type OneTimeCodeGetProps = QueryGet & {\n id: number,\n};\n\nexport type OneTimeCodeListProps = QueryList & {\n revealCode?: boolean\n};\n\nexport type OneTimeCodeConsumeProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType\n oneTimeCode: string\n userId?: number\n userType?: string\n }\n}\n\nconst getCreatePayload = async (\n fieldRef: OneTimeCodeCreateProps[\"field_ref\"],\n fieldModule: OneTimeCodeCreateProps[\"field_module\"],\n data: OneTimeCodeCreateProps[\"data\"],\n code: string,\n) => {\n\n let expiredAt = data?.expiredAt ?? \"\"\n\n if (!expiredAt) {\n // Set expiration 15 minutes from now - Default\n expiredAt = dayjs().add(15, \"minute\").toDate(); // convert to JS Date\n }\n\n return {\n [`${ModelOneTimeCodeFields.code_type}`]: data.codeType,\n [`${ModelOneTimeCodeFields.code}`]: code,\n [`${ModelOneTimeCodeFields.expires_at}`]: expiredAt,\n [`${ModelOneTimeCodeFields.mobile_number}`]: data.mobileNumber ?? \"\",\n [`${ModelOneTimeCodeFields.email_address}`]: data.emailAddress ?? \"\",\n [`${ModelOneTimeCodeFields.field_ref}`]: fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: fieldModule,\n [`${ModelOneTimeCodeFields.user_id}`]: data?.userId ?? 0,\n [`${ModelOneTimeCodeFields.user_type}`]: data?.userType ?? \"\",\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType ?? \"\"\n }\n\n}\n\nlet mainSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.one_time_code_id}`]: \"one_time_code_id\",\n [`otp.${ModelOneTimeCodeFields.purpose_type}`]: \"purpose_type\",\n [`otp.${ModelOneTimeCodeFields.code_status}`]: \"code_status\",\n [`otp.${ModelOneTimeCodeFields.code_type}`]: \"code_type\",\n [`otp.${ModelOneTimeCodeFields.email_address}`]: \"email_address\",\n [`otp.${ModelOneTimeCodeFields.mobile_number}`]: \"mobile_number\",\n [`otp.${ModelOneTimeCodeFields.expires_at}`]: \"expires_at\",\n [`otp.${ModelOneTimeCodeFields.used_at}`]: \"used_at\",\n [`otp.${ModelOneTimeCodeFields.field_module}`]: \"field_module\",\n [`otp.${ModelOneTimeCodeFields.field_ref}`]: \"field_ref\",\n [`otp.${ModelOneTimeCodeFields.user_id}`]: \"user_id\",\n [`otp.${ModelOneTimeCodeFields.user_type}`]: \"user_type\",\n}\n\nlet mainCodeSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.code}`]: \"code\"\n}\n\nlet defaultSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`otp.${ModelOneTimeCodeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`otp.${ModelOneTimeCodeFields.isdelete}`]: \"isdelete\",\n [`otp.${ModelOneTimeCodeFields.istrash}`]: \"istrash\",\n [`otp.${ModelOneTimeCodeFields.accountid}`]: \"accountid\",\n}\n\nexport const OneTimeCodeService = (props: OneTimeCodeServiceProps) => {\n\n const {\n field_ref = \"document\",\n field_module = \"sales\",\n ...rest\n } = props\n\n const oneTimeCodeModel = OneTimeCodeModel({ ...rest })\n\n const generateOneTimeCode = ({\n codeType = \"otp\"\n }: {\n codeType: OneTimeCodeType\n }) => {\n\n if (codeType === \"otp\") {\n // Generate 6-digit numeric OTP\n const otp = Math.floor(100000 + Math.random() * 900000);\n return otp.toString();\n } else if (codeType === \"token\") {\n // Generate secure random 32-character alphanumeric token\n return crypto.randomBytes(16).toString(\"hex\"); // 16 bytes = 32 hex chars\n }\n\n throw new Error(`Unsupported codeType: ${codeType}`);\n\n }\n\n const createOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeCreateProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n const oneTimeCode = generateOneTimeCode({\n codeType: data.codeType\n })\n\n const _data = await getCreatePayload(\n _fieldRef,\n _fieldModule,\n data,\n oneTimeCode\n )\n\n if (!_data) {\n throw new Error(`Invalid create one time code payload: ${JSON.stringify(_data)}`);\n }\n\n // create one time code\n let response = await oneTimeCodeModel.create({ data: _data })\n\n return response\n }\n\n const getOneTimeCode = async ({ id, datatypes = [] }: OneTimeCodeGetProps) => {\n\n let { data } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOneTimeCodeFields.one_time_code_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes,\n revealCode: false\n })\n\n return data[0] ?? null;\n\n };\n\n const listOneTimeCodes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [], revealCode = false }: OneTimeCodeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n ...(revealCode === true ? [buildSqlSelect(``, mainCodeSqlSelect)] : []),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"otp\", \"accounts\", \"acc\", [\"otp.accountid = acc.account_id\", \"acc.isdelete = false\", \"acc.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"creator\", [\"otp.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"updater\", [\"otp.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...(revealCode === true ? Object.keys(mainCodeSqlSelect) : []),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...(revealCode === true ? mainCodeSqlSelect : {}),\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `otp.isdelete = false`,\n `otp.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: \"one_time_codes\",\n mainAlias: \"otp\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n })\n\n data = await oneTimeCodeModel.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 consumeOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeConsumeProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n // retrive the one time code\n const { data: findOneTimeCodes } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.field_ref}`,\n operator: \"=\",\n value: `${_fieldRef}`\n },\n {\n field: `${ModelOneTimeCodeFields.field_module}`,\n operator: \"=\",\n value: `${_fieldModule}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${data.purposeType}`\n },\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${data.oneTimeCode}`\n },\n ...(\n data?.userId ? [{\n field: `${ModelOneTimeCodeFields.user_id}`,\n operator: \"=\",\n value: `${data.userId}`\n }] as OneTimeCodeListProps['filters'] : []\n ),\n ...(\n data?.userType ? [{\n field: `${ModelOneTimeCodeFields.user_type}`,\n operator: \"=\",\n value: `${data.userType}`\n }] as OneTimeCodeListProps['filters'] : []\n )\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true\n })\n\n const findOneTimeCode = findOneTimeCodes.length > 0 ? findOneTimeCodes[0] : {}\n const findOneTimeCodeId = Number(findOneTimeCode?.one_time_code_id ?? \"\")\n\n if (!findOneTimeCodeId) {\n throw new Error(`Invalid one time code: ${data.oneTimeCode}`);\n }\n\n const findOneTimeCodeStatus = findOneTimeCode?.code_status\n\n if (findOneTimeCodeStatus !== oneTimeCodeStatus.active) {\n throw new Error(`One time code is not active: ${data.oneTimeCode}`);\n }\n\n const currentDateTimeISO = getCurrentDateTimeISO()\n\n // mark one time code as used\n await oneTimeCodeModel.update({\n id: findOneTimeCodeId,\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.used,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n }\n })\n\n // revoke all related ACTIVE one time codes\n await oneTimeCodeModel.update({\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.revoked,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n },\n where: {\n [`${ModelOneTimeCodeFields.field_ref}`]: _fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: _fieldModule,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType,\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n ...(data?.userId ? {\n [`${ModelOneTimeCodeFields.user_id}`]: data.userId,\n } : {}),\n ...(data?.userType ? {\n [`${ModelOneTimeCodeFields.user_type}`]: data.userType,\n } : {}),\n },\n disableRollback: true\n })\n\n let response = await getOneTimeCode({ id: findOneTimeCodeId, datatypes: [] })\n\n return response\n }\n\n return {\n createOneTimeCode,\n getOneTimeCode,\n listOneTimeCodes,\n consumeOneTimeCode\n }\n\n}\n\n"]}
|
|
@@ -84,7 +84,7 @@ const AreaService = (props) => {
|
|
|
84
84
|
const listAreas = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
85
85
|
let data = [];
|
|
86
86
|
let sqlSelect = [
|
|
87
|
-
`COUNT(
|
|
87
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
88
88
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
89
89
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
90
90
|
];
|
|
@@ -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 ...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"]}
|
|
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 ...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(*) 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"]}
|
|
@@ -88,7 +88,7 @@ const CountryService = (props) => {
|
|
|
88
88
|
const listCountries = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
89
89
|
let data = [];
|
|
90
90
|
let sqlSelect = [
|
|
91
|
-
`COUNT(
|
|
91
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
92
92
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
93
93
|
// buildSqlSelect(``, userSqlSelect),
|
|
94
94
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
@@ -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 ...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"]}
|
|
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 ...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(*) 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"]}
|
|
@@ -100,7 +100,7 @@ const StateService = (props) => {
|
|
|
100
100
|
const listStates = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
101
101
|
let data = [];
|
|
102
102
|
let sqlSelect = [
|
|
103
|
-
`COUNT(
|
|
103
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
104
104
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
105
105
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
106
106
|
];
|
|
@@ -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 ...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"]}
|
|
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 ...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(*) 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"]}
|
|
@@ -57,7 +57,7 @@ const SchedulerLogService = (props) => {
|
|
|
57
57
|
const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }) => {
|
|
58
58
|
// let data = []
|
|
59
59
|
let sqlSelect = [
|
|
60
|
-
// `COUNT(
|
|
60
|
+
// `COUNT(*) OVER() as filtered_count`,
|
|
61
61
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
62
62
|
// buildSqlSelect(``, regionSqlSelect),
|
|
63
63
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|