@things-factory/product-base 9.0.0-beta.76 → 9.0.0
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-server/service/product/product-mutation.js +49 -27
- package/dist-server/service/product/product-mutation.js.map +1 -1
- package/dist-server/service/product/product-query.js +12 -8
- package/dist-server/service/product/product-query.js.map +1 -1
- package/dist-server/service/product/validate-product.js +1 -1
- package/dist-server/service/product/validate-product.js.map +1 -1
- package/dist-server/service/product-bundle/product-bundle-mutation.js +31 -8
- package/dist-server/service/product-bundle/product-bundle-mutation.js.map +1 -1
- package/dist-server/service/product-bundle/product-bundle-query.js +3 -1
- package/dist-server/service/product-bundle/product-bundle-query.js.map +1 -1
- package/dist-server/service/product-bundle-setting/product-bundle-setting-mutation.js +9 -4
- package/dist-server/service/product-bundle-setting/product-bundle-setting-mutation.js.map +1 -1
- package/dist-server/service/product-bundle-setting/product-bundle-setting-query.js +31 -5
- package/dist-server/service/product-bundle-setting/product-bundle-setting-query.js.map +1 -1
- package/dist-server/service/product-combination/product-combination-mutation.js +33 -9
- package/dist-server/service/product-combination/product-combination-mutation.js.map +1 -1
- package/dist-server/service/product-combination/product-combination-query.js +4 -1
- package/dist-server/service/product-combination/product-combination-query.js.map +1 -1
- package/dist-server/service/product-combination-setting/product-combination-setting-mutation.js +37 -10
- package/dist-server/service/product-combination-setting/product-combination-setting-mutation.js.map +1 -1
- package/dist-server/service/product-combination-setting/product-combination-setting-query.js +6 -4
- package/dist-server/service/product-combination-setting/product-combination-setting-query.js.map +1 -1
- package/dist-server/service/product-detail/product-detail-mutation.js +74 -33
- package/dist-server/service/product-detail/product-detail-mutation.js.map +1 -1
- package/dist-server/service/product-detail/product-detail-query.js +18 -10
- package/dist-server/service/product-detail/product-detail-query.js.map +1 -1
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js +22 -5
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js.map +1 -1
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-query.js +8 -1
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-query.js.map +1 -1
- package/dist-server/service/product-set/product-set-mutation.js +25 -7
- package/dist-server/service/product-set/product-set-mutation.js.map +1 -1
- package/dist-server/service/product-set/product-set-query.js +4 -1
- package/dist-server/service/product-set/product-set-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
package/dist-server/service/product-combination-setting/product-combination-setting-mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-combination-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, SelectQueryBuilder } from 'typeorm'\n\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { NewProductCombinationSetting, ProductCombinationSettingPatch } from './product-combination-setting-type'\n\nconst debug = require('debug')('things-factory:product-base:productCombinationSetting')\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To create new ProductCombinationSetting' })\n async createProductCombinationSetting(\n @Arg('productCombinationSetting') productCombinationSetting: NewProductCombinationSetting,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductCombinationSetting).save({\n ...(productCombinationSetting as any),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To modify ProductCombinationSetting information' })\n async updateProductCombinationSetting(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductCombinationSettingPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductCombinationSetting)\n const productCombinationSetting = await repository.findOne({\n where: { id }\n })\n\n return await repository.save({\n ...productCombinationSetting,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductCombinationSetting], {\n description: \"To modify multiple ProductCombinationSettings' information\"\n })\n async updateMultipleProductCombinationSetting(\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ProductCombinationSetting' })\n async deleteProductCombinationSetting(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({ id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple productCombinationSettings' })\n async deleteProductCombinationSettings(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To link product combination for kitting process' })\n async linkProductCombination(\n @Arg('productCombinationId', type => String) productCombinationId: string,\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n try {\n const { domain, tx } = context.state\n\n const qb: SelectQueryBuilder<ProductCombinationSetting> = tx\n .getRepository(ProductCombinationSetting)\n .createQueryBuilder('pbs')\n .innerJoinAndSelect('pbs.product', 'prd')\n .innerJoinAndSelect('pbs.productDetail', 'pd')\n .innerJoinAndSelect('pbs.productCombination', 'pc')\n .where('pc.id = :productCombinationId', { productCombinationId })\n .andWhere('pc.domain_id = :domainId', { domainId: domain.id })\n\n const existingCombinationLink = await qb.getMany()\n\n let newCombinationLink: ProductCombinationSetting[] = patches.reduce((acc, curr) => {\n if (\n !existingCombinationLink.find(\n item => item.product.id === curr.product.id && item.productDetail.id === curr.productDetail.id\n )\n ) {\n acc.push({\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: '+'\n })\n }\n // check if there is existing bundle link but changes in bundle qty\n else if (\n existingCombinationLink.find(\n item =>\n item.product.id === curr.product.id &&\n item.productDetail.id === curr.productDetail.id &&\n item.qty !== curr.qty\n )\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: 'M'\n })\n }\n return acc\n }, [])\n\n let removeCombinationLink: ProductCombinationSetting[] = existingCombinationLink.reduce((acc, curr) => {\n if (\n !patches.find(item => item.product.id == curr.product.id && item.productDetail.id == curr.productDetail.id)\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty\n })\n }\n return acc\n }, [])\n\n if (newCombinationLink.length > 0) {\n await updateMultipleProductCombinationSetting(newCombinationLink, context)\n }\n\n if (removeCombinationLink.length > 0) {\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(removeCombinationLink.map(combinationLink => combinationLink.id))\n })\n }\n\n return true\n } catch (error) {\n debug('link-product-combination', error)\n throw error\n }\n }\n}\n\nexport async function updateMultipleProductCombinationSetting(patches: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-combination-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-mutation.ts"],"names":[],"mappings":";;;AAgNA,0FAuCC;;AAvPD,+CAAsE;AACtE,qCAAgD;AAEhD,+EAAyE;AACzE,yFAAiH;AAEjH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,uDAAuD,CAAC,CAAA;AAGhF,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAGtC,AAAN,KAAK,CAAC,+BAA+B,CACD,yBAAuD,EAClF,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAC,IAAI,CAAC;YAC5D,GAAI,yBAAiC;YACrC,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,+BAA+B,CACxB,EAAU,EACP,KAAqC,EAC5C,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAA;QAC9D,MAAM,yBAAyB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACzD,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,yBAAyB;YAC5B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAMK,AAAN,KAAK,CAAC,uCAAuC,CACe,OAAyC,EAC5F,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,6BAA6B,GAAG,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAA;QAEjF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC;oBACtD,GAAG,SAAS;oBACZ,MAAM;oBACN,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,yBAAyB,GAAG,MAAM,6BAA6B,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;gBAErG,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC;oBACtD,GAAG,yBAAyB;oBAC5B,GAAG,SAAS;oBACZ,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,+BAA+B,CAAY,EAAU,EAAS,OAAwB;QAC1F,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAChE,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,gCAAgC,CACN,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAC,MAAM,CAAC;YACvD,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,sBAAsB,CACmB,oBAA4B,EACf,OAAyC,EAC5F,OAAwB;QAE/B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,MAAM,EAAE,GAAkD,EAAE;iBACzD,aAAa,CAAC,uDAAyB,CAAC;iBACxC,kBAAkB,CAAC,KAAK,CAAC;iBACzB,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC;iBACxC,kBAAkB,CAAC,mBAAmB,EAAE,IAAI,CAAC;iBAC7C,kBAAkB,CAAC,wBAAwB,EAAE,IAAI,CAAC;iBAClD,KAAK,CAAC,+BAA+B,EAAE,EAAE,oBAAoB,EAAE,CAAC;iBAChE,QAAQ,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAEhE,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;YAElD,IAAI,kBAAkB,GAAgC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACjF,IACE,CAAC,uBAAuB,CAAC,IAAI,CAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,CAC/F,EACD,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC;wBACP,kBAAkB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;wBAChD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;wBAChC,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;wBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,MAAM,EAAE,GAAG;qBACZ,CAAC,CAAA;gBACJ,CAAC;gBACD,mEAAmE;qBAC9D,IACH,uBAAuB,CAAC,IAAI,CAC1B,IAAI,CAAC,EAAE,CACL,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;oBACnC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE;oBAC/C,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CACxB,EACD,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,kBAAkB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;wBAChD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;wBAChC,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;wBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,MAAM,EAAE,GAAG;qBACZ,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YAEN,IAAI,qBAAqB,GAAgC,uBAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACpG,IACE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAC3G,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,kBAAkB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;wBAChD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;wBAChC,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;wBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG;qBACd,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YAEN,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,uCAAuC,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;YAC5E,CAAC;YAED,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAC,MAAM,CAAC;oBACvD,EAAE,EAAE,IAAA,YAAE,EAAC,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;iBACzE,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA;AArMY,8EAAiC;AAGtC;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,uDAAyB,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;IAExG,mBAAA,IAAA,kBAAG,EAAC,2BAA2B,CAAC,CAAA;IAChC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADuD,+DAA4B;;wFAW1F;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,uDAAyB,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IAEhH,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,iEAA8B;;wFAepD;AAMK;IAJL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,uDAAyB,CAAC,EAAE;QAChD,WAAW,EAAE,4DAA4D;KAC1E,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,iEAA8B,CAAC,CAAC,CAAA;IACxD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;gGAwCP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;wFAKlE;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IAE5F,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;yFASP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IAE9F,mBAAA,IAAA,kBAAG,EAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC3C,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,iEAA8B,CAAC,CAAC,CAAA;IACxD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+EAiFP;4CApMU,iCAAiC;IAD7C,IAAA,uBAAQ,EAAC,uDAAyB,CAAC;GACvB,iCAAiC,CAqM7C;AAEM,KAAK,UAAU,uCAAuC,CAAC,OAAY,EAAE,OAAwB;IAClG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,6BAA6B,GAAG,EAAE,CAAC,aAAa,CAAC,uDAAyB,CAAC,CAAA;IAEjF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC;gBACtD,GAAG,SAAS;gBACZ,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,yBAAyB,GAAG,MAAM,6BAA6B,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAErG,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC;gBACtD,GAAG,yBAAyB;gBAC5B,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, SelectQueryBuilder } from 'typeorm'\n\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { NewProductCombinationSetting, ProductCombinationSettingPatch } from './product-combination-setting-type'\n\nconst debug = require('debug')('things-factory:product-base:productCombinationSetting')\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To create new ProductCombinationSetting' })\n async createProductCombinationSetting(\n @Arg('productCombinationSetting') productCombinationSetting: NewProductCombinationSetting,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductCombinationSetting).save({\n ...(productCombinationSetting as any),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To modify ProductCombinationSetting information' })\n async updateProductCombinationSetting(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductCombinationSettingPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductCombinationSetting)\n const productCombinationSetting = await repository.findOne({\n where: { id }\n })\n\n return await repository.save({\n ...productCombinationSetting,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductCombinationSetting], {\n description: \"To modify multiple ProductCombinationSettings' information\"\n })\n async updateMultipleProductCombinationSetting(\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ProductCombinationSetting' })\n async deleteProductCombinationSetting(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({ id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple productCombinationSettings' })\n async deleteProductCombinationSettings(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To link product combination for kitting process' })\n async linkProductCombination(\n @Arg('productCombinationId', type => String) productCombinationId: string,\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n try {\n const { domain, tx } = context.state\n\n const qb: SelectQueryBuilder<ProductCombinationSetting> = tx\n .getRepository(ProductCombinationSetting)\n .createQueryBuilder('pbs')\n .innerJoinAndSelect('pbs.product', 'prd')\n .innerJoinAndSelect('pbs.productDetail', 'pd')\n .innerJoinAndSelect('pbs.productCombination', 'pc')\n .where('pc.id = :productCombinationId', { productCombinationId })\n .andWhere('pc.domain_id = :domainId', { domainId: domain.id })\n\n const existingCombinationLink = await qb.getMany()\n\n let newCombinationLink: ProductCombinationSetting[] = patches.reduce((acc, curr) => {\n if (\n !existingCombinationLink.find(\n item => item.product.id === curr.product.id && item.productDetail.id === curr.productDetail.id\n )\n ) {\n acc.push({\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: '+'\n })\n }\n // check if there is existing bundle link but changes in bundle qty\n else if (\n existingCombinationLink.find(\n item =>\n item.product.id === curr.product.id &&\n item.productDetail.id === curr.productDetail.id &&\n item.qty !== curr.qty\n )\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: 'M'\n })\n }\n return acc\n }, [])\n\n let removeCombinationLink: ProductCombinationSetting[] = existingCombinationLink.reduce((acc, curr) => {\n if (\n !patches.find(item => item.product.id == curr.product.id && item.productDetail.id == curr.productDetail.id)\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty\n })\n }\n return acc\n }, [])\n\n if (newCombinationLink.length > 0) {\n await updateMultipleProductCombinationSetting(newCombinationLink, context)\n }\n\n if (removeCombinationLink.length > 0) {\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(removeCombinationLink.map(combinationLink => combinationLink.id))\n })\n }\n\n return true\n } catch (error) {\n debug('link-product-combination', error)\n throw error\n }\n }\n}\n\nexport async function updateMultipleProductCombinationSetting(patches: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
|
package/dist-server/service/product-combination-setting/product-combination-setting-query.js
CHANGED
|
@@ -27,7 +27,6 @@ let ProductCombinationSettingQuery = class ProductCombinationSettingQuery {
|
|
|
27
27
|
return { items, total };
|
|
28
28
|
}
|
|
29
29
|
async productCombinationSets(params, context) {
|
|
30
|
-
var _a;
|
|
31
30
|
const { domain } = context.state;
|
|
32
31
|
const page = params.pagination.page;
|
|
33
32
|
const limit = params.pagination.limit;
|
|
@@ -42,17 +41,20 @@ let ProductCombinationSettingQuery = class ProductCombinationSettingQuery {
|
|
|
42
41
|
{ name: 'prdDet.gtin' },
|
|
43
42
|
...params.sortings.map(sorting => {
|
|
44
43
|
const name = sorting.name.replace('product', '').toLowerCase();
|
|
45
|
-
return
|
|
44
|
+
return {
|
|
45
|
+
...sorting,
|
|
46
|
+
name
|
|
47
|
+
};
|
|
46
48
|
})
|
|
47
49
|
];
|
|
48
|
-
if (bizplaceFilter
|
|
50
|
+
if (bizplaceFilter?.value) {
|
|
49
51
|
const bizplaceId = bizplaceFilter.value;
|
|
50
52
|
const foundBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
51
53
|
where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,
|
|
52
54
|
relations: ['company', 'company.domain']
|
|
53
55
|
});
|
|
54
56
|
if (foundBizplace) {
|
|
55
|
-
const companyDomain =
|
|
57
|
+
const companyDomain = foundBizplace.company?.domain;
|
|
56
58
|
const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
57
59
|
where: { domain: { id: companyDomain.id } }
|
|
58
60
|
});
|
package/dist-server/service/product-combination-setting/product-combination-setting-query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-combination-setting-query.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductCombination } from '../product-combination/product-combination'\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from '../product/product'\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { ProductCombinationSettingList } from './product-combination-setting-type'\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingQuery {\n @Query(returns => ProductCombinationSetting, { description: 'To fetch a ProductCombinationSetting' })\n async productCombinationSetting(\n @Arg('productCombinationId') productCombinationId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const productCombination: ProductCombination = await getRepository(ProductCombination).findOne({\n where: { id: productCombinationId },\n relations: ['productCombinationSetting']\n })\n\n const productCombinationSettings: ProductCombinationSetting[] = productCombination.productCombinationSettings\n\n return productCombinationSettings\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch multiple ProductCombinationSettings' })\n async productCombinationSettings(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n\n const convertedParams = convertListParams(params, { domain })\n const [items, total] = await getRepository(ProductCombinationSetting).findAndCount(convertedParams)\n\n return { items, total }\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch a set of product combinations' })\n async productCombinationSets(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n const page = params.pagination.page\n const limit = params.pagination.limit\n\n const filters = params.filters.filter(\n x => x.name !== 'product_info' && x.name !== 'productCombinationId' && x.name !== 'bizplace_id'\n )\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productCombinationId = params.filters.find(x => x.name === 'productCombinationId')\n const productInfoFilter = params.filters.find(x => x.name === 'product_info')\n const productInfoColumns = ['sku', 'name', 'description']\n params.filters = [...filters]\n\n params.sortings = [\n { name: 'prd.sku' },\n { name: 'prdDet.gtin' },\n ...params.sortings.map(sorting => {\n const name = sorting.name.replace('product', '').toLowerCase()\n return {\n ...sorting,\n name\n }\n })\n ]\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [...new Set(bizplaceIds)] }]\n }\n } else {\n let bizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } })\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [bizplace.id] }]\n }\n\n const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder('prd')\n buildQuery(qb, params, context, {\n domainRef: false\n })\n\n qb.innerJoinAndSelect('product_details', 'prdDet', 'prdDet.product_id = prd.id')\n qb.leftJoinAndSelect(\n 'product_combination_settings',\n 'pcs',\n `pcs.product_id = prd.id and pcs.product_detail_id = prdDet.id ${\n productCombinationId && productCombinationId.operator === 'noteq' ? 'and pcs.product_detail_id = null' : ''\n }`\n )\n qb.leftJoinAndSelect('pcs.productCombination', 'pc')\n\n if (productInfoFilter) {\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productInfoFilter.operator,\n productInfoFilter.value,\n productInfoFilter.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (productCombinationId && productCombinationId.operator === 'eq') {\n qb.andWhere('pc.id = :combinationId::uuid', {\n combinationId: productCombinationId.value\n })\n }\n\n let productCombinationSets = await qb\n .offset((page - 1) * limit)\n .limit(limit)\n .getRawMany()\n\n const items = productCombinationSets.map(item => {\n return {\n id: item.pcs_id,\n productDetailId: item.prdDet_id,\n gtin: item.prdDet_gtin,\n packingType: item.prdDet_packing_type,\n packingSize: item.prdDet_packing_size,\n productId: item.prd_id,\n productSku: item.prd_sku,\n productName: item.prd_name,\n productDescription: item.prd_description,\n productType: item.prd_type,\n combinationId: item.pc_id,\n qty: item.pcs_qty\n }\n })\n\n const total = await qb.getCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Product)\n async product(@Root() productCombinationSetting: ProductCombinationSetting): Promise<Product> {\n return await getRepository(Product).findOneBy({ id: productCombinationSetting.productId })\n }\n\n @FieldResolver(type => ProductDetail)\n async productDetail(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductDetail> {\n return await getRepository(ProductDetail).findOneBy({ id: productCombinationSetting.productDetailId })\n }\n\n @FieldResolver(type => ProductCombination)\n async productCombination(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductCombination> {\n return await getRepository(ProductCombination).findOneBy({ id: productCombinationSetting.productCombinationId })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-combination-setting-query.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductCombination } from '../product-combination/product-combination'\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from '../product/product'\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { ProductCombinationSettingList } from './product-combination-setting-type'\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingQuery {\n @Query(returns => ProductCombinationSetting, { description: 'To fetch a ProductCombinationSetting' })\n async productCombinationSetting(\n @Arg('productCombinationId') productCombinationId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const productCombination: ProductCombination = await getRepository(ProductCombination).findOne({\n where: { id: productCombinationId },\n relations: ['productCombinationSetting']\n })\n\n const productCombinationSettings: ProductCombinationSetting[] = productCombination.productCombinationSettings\n\n return productCombinationSettings\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch multiple ProductCombinationSettings' })\n async productCombinationSettings(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n\n const convertedParams = convertListParams(params, { domain })\n const [items, total] = await getRepository(ProductCombinationSetting).findAndCount(convertedParams)\n\n return { items, total }\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch a set of product combinations' })\n async productCombinationSets(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n const page = params.pagination.page\n const limit = params.pagination.limit\n\n const filters = params.filters.filter(\n x => x.name !== 'product_info' && x.name !== 'productCombinationId' && x.name !== 'bizplace_id'\n )\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productCombinationId = params.filters.find(x => x.name === 'productCombinationId')\n const productInfoFilter = params.filters.find(x => x.name === 'product_info')\n const productInfoColumns = ['sku', 'name', 'description']\n params.filters = [...filters]\n\n params.sortings = [\n { name: 'prd.sku' },\n { name: 'prdDet.gtin' },\n ...params.sortings.map(sorting => {\n const name = sorting.name.replace('product', '').toLowerCase()\n return {\n ...sorting,\n name\n }\n })\n ]\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [...new Set(bizplaceIds)] }]\n }\n } else {\n let bizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } })\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [bizplace.id] }]\n }\n\n const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder('prd')\n buildQuery(qb, params, context, {\n domainRef: false\n })\n\n qb.innerJoinAndSelect('product_details', 'prdDet', 'prdDet.product_id = prd.id')\n qb.leftJoinAndSelect(\n 'product_combination_settings',\n 'pcs',\n `pcs.product_id = prd.id and pcs.product_detail_id = prdDet.id ${\n productCombinationId && productCombinationId.operator === 'noteq' ? 'and pcs.product_detail_id = null' : ''\n }`\n )\n qb.leftJoinAndSelect('pcs.productCombination', 'pc')\n\n if (productInfoFilter) {\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productInfoFilter.operator,\n productInfoFilter.value,\n productInfoFilter.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (productCombinationId && productCombinationId.operator === 'eq') {\n qb.andWhere('pc.id = :combinationId::uuid', {\n combinationId: productCombinationId.value\n })\n }\n\n let productCombinationSets = await qb\n .offset((page - 1) * limit)\n .limit(limit)\n .getRawMany()\n\n const items = productCombinationSets.map(item => {\n return {\n id: item.pcs_id,\n productDetailId: item.prdDet_id,\n gtin: item.prdDet_gtin,\n packingType: item.prdDet_packing_type,\n packingSize: item.prdDet_packing_size,\n productId: item.prd_id,\n productSku: item.prd_sku,\n productName: item.prd_name,\n productDescription: item.prd_description,\n productType: item.prd_type,\n combinationId: item.pc_id,\n qty: item.pcs_qty\n }\n })\n\n const total = await qb.getCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Product)\n async product(@Root() productCombinationSetting: ProductCombinationSetting): Promise<Product> {\n return await getRepository(Product).findOneBy({ id: productCombinationSetting.productId })\n }\n\n @FieldResolver(type => ProductDetail)\n async productDetail(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductDetail> {\n return await getRepository(ProductDetail).findOneBy({ id: productCombinationSetting.productDetailId })\n }\n\n @FieldResolver(type => ProductCombination)\n async productCombination(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductCombination> {\n return await getRepository(ProductCombination).findOneBy({ id: productCombinationSetting.productCombinationId })\n }\n}\n"]}
|
|
@@ -82,7 +82,12 @@ exports.ProductDetailMutation = ProductDetailMutation = tslib_1.__decorate([
|
|
|
82
82
|
], ProductDetailMutation);
|
|
83
83
|
async function createProductDetail(productDetail, context) {
|
|
84
84
|
const { domain, user, tx } = context.state;
|
|
85
|
-
return await tx.getRepository(product_detail_1.ProductDetail).save(
|
|
85
|
+
return await tx.getRepository(product_detail_1.ProductDetail).save({
|
|
86
|
+
...productDetail,
|
|
87
|
+
domain,
|
|
88
|
+
creator: user,
|
|
89
|
+
updater: user
|
|
90
|
+
});
|
|
86
91
|
}
|
|
87
92
|
async function updateProductDetail(id, patch, context) {
|
|
88
93
|
const { domain, user, tx } = context.state;
|
|
@@ -91,10 +96,13 @@ async function updateProductDetail(id, patch, context) {
|
|
|
91
96
|
if (patch.gtin == undefined) {
|
|
92
97
|
delete patch.gtin;
|
|
93
98
|
}
|
|
94
|
-
return await repository.save(
|
|
99
|
+
return await repository.save({
|
|
100
|
+
...productDetail,
|
|
101
|
+
...patch,
|
|
102
|
+
updater: user
|
|
103
|
+
});
|
|
95
104
|
}
|
|
96
105
|
async function updateMultipleProductDetail(productId, patches, context) {
|
|
97
|
-
var _a, e_1, _b, _c;
|
|
98
106
|
try {
|
|
99
107
|
const { domain, user, tx } = context.state;
|
|
100
108
|
let results = [];
|
|
@@ -107,12 +115,21 @@ async function updateMultipleProductDetail(productId, patches, context) {
|
|
|
107
115
|
const defaultProductDetail = patches.find(x => x.isDefault);
|
|
108
116
|
if (_createRecords.length > 0) {
|
|
109
117
|
for (let i = 0; i < _createRecords.length; i++) {
|
|
110
|
-
const newRecord =
|
|
118
|
+
const newRecord = {
|
|
119
|
+
..._createRecords[i],
|
|
120
|
+
name: _createRecords[i].gtin,
|
|
121
|
+
product,
|
|
122
|
+
childProductDetail: null,
|
|
123
|
+
childQty: 0,
|
|
124
|
+
domain: domain,
|
|
125
|
+
creator: user,
|
|
126
|
+
updater: user
|
|
127
|
+
};
|
|
111
128
|
if (newRecord.gtin == null || newRecord.gtin == undefined) {
|
|
112
129
|
throw new Error('GTIN cannot be empty.');
|
|
113
130
|
}
|
|
114
131
|
const result = await productDetailRepo.save(newRecord);
|
|
115
|
-
results.push(
|
|
132
|
+
results.push({ ...result, cuFlag: '+' });
|
|
116
133
|
}
|
|
117
134
|
}
|
|
118
135
|
let deleteIds = [];
|
|
@@ -120,42 +137,51 @@ async function updateMultipleProductDetail(productId, patches, context) {
|
|
|
120
137
|
let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id);
|
|
121
138
|
if (updateRecords) {
|
|
122
139
|
const productDetail = await productDetailRepo.findOneBy({ id: updateRecords.id });
|
|
123
|
-
const updateRecord =
|
|
140
|
+
const updateRecord = {
|
|
141
|
+
...productDetail,
|
|
142
|
+
...updateRecords,
|
|
143
|
+
name: updateRecords.gtin,
|
|
144
|
+
product,
|
|
145
|
+
childProductDetail: null,
|
|
146
|
+
childQty: 0,
|
|
147
|
+
updater: user
|
|
148
|
+
};
|
|
124
149
|
if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {
|
|
125
150
|
throw new Error('GTIN cannot be empty.');
|
|
126
151
|
}
|
|
127
|
-
const result = await productDetailRepo.save(
|
|
128
|
-
|
|
152
|
+
const result = await productDetailRepo.save({
|
|
153
|
+
...productDetail,
|
|
154
|
+
...updateRecord,
|
|
155
|
+
name: updateRecord.gtin,
|
|
156
|
+
product,
|
|
157
|
+
childProductDetail: null,
|
|
158
|
+
childQty: 0,
|
|
159
|
+
updater: user
|
|
160
|
+
});
|
|
161
|
+
results.push({ ...result, cuFlag: 'M' });
|
|
129
162
|
}
|
|
130
163
|
else {
|
|
131
164
|
deleteIds.push(product.productDetails[x].id);
|
|
132
165
|
}
|
|
133
166
|
}
|
|
134
167
|
await productDetailRepo.delete({ id: (0, typeorm_1.In)(deleteIds) });
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
154
|
-
finally {
|
|
155
|
-
try {
|
|
156
|
-
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
168
|
+
for await (let patch of patches.filter(x => x.childProductDetail)) {
|
|
169
|
+
let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail);
|
|
170
|
+
if (matchedChildProductDetail) {
|
|
171
|
+
const childProductDetail = await productDetailRepo.findOne({
|
|
172
|
+
where: { id: matchedChildProductDetail.id },
|
|
173
|
+
relations: ['product']
|
|
174
|
+
});
|
|
175
|
+
const productDetail = await productDetailRepo.findOne({
|
|
176
|
+
where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }
|
|
177
|
+
});
|
|
178
|
+
await productDetailRepo.save({
|
|
179
|
+
...productDetail,
|
|
180
|
+
childQty: patch.childQty,
|
|
181
|
+
childProductDetail: childProductDetail,
|
|
182
|
+
updater: user
|
|
183
|
+
});
|
|
157
184
|
}
|
|
158
|
-
finally { if (e_1) throw e_1.error; }
|
|
159
185
|
}
|
|
160
186
|
let defaultProductUpdate;
|
|
161
187
|
//// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.
|
|
@@ -167,11 +193,26 @@ async function updateMultipleProductDetail(productId, patches, context) {
|
|
|
167
193
|
}
|
|
168
194
|
});
|
|
169
195
|
if (firstCase) {
|
|
170
|
-
defaultProductUpdate =
|
|
196
|
+
defaultProductUpdate = {
|
|
197
|
+
...defaultProductUpdate,
|
|
198
|
+
caseGtin: firstCase.gtin,
|
|
199
|
+
caseWidth: firstCase.width,
|
|
200
|
+
caseHeight: firstCase.height,
|
|
201
|
+
caseDepth: firstCase.depth,
|
|
202
|
+
caseGrossWeight: firstCase.grossWeight,
|
|
203
|
+
caseWeight: firstCase.nettWeight,
|
|
204
|
+
caseVolume: firstCase.volume
|
|
205
|
+
};
|
|
171
206
|
}
|
|
172
207
|
/////////////////////////////////////////////////////
|
|
173
208
|
if (defaultProductDetail) {
|
|
174
|
-
defaultProductUpdate =
|
|
209
|
+
defaultProductUpdate = {
|
|
210
|
+
...defaultProductUpdate,
|
|
211
|
+
packingType: defaultProductDetail.packingType,
|
|
212
|
+
primaryUnit: defaultProductDetail.uom,
|
|
213
|
+
primaryValue: defaultProductDetail.uomValue,
|
|
214
|
+
cogsAccountCode: defaultProductDetail.cogsAccountCode
|
|
215
|
+
};
|
|
175
216
|
}
|
|
176
217
|
if (!lodash_1.default.isEmpty(defaultProductUpdate)) {
|
|
177
218
|
await productRepo.update({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Raw } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Product } from '../product/product'\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailPatch } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductDetail)\n async updateProductDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n return await updateProductDetail(id, patch, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductDetail])\n async updateMultipleProductDetail(\n @Arg('productId') productId: string,\n @Arg('patches', type => [ProductDetailPatch]) patches: ProductDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail[]> {\n try {\n return await updateMultipleProductDetail(productId, patches, context)\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n\n return true\n }\n}\n\nexport async function createProductDetail(productDetail: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductDetail).save({\n ...productDetail,\n domain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateProductDetail(id: string, patch: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductDetail)\n const productDetail: ProductDetail = await repository.findOne({ where: { id } })\n\n if (patch.gtin == undefined) {\n delete patch.gtin\n }\n\n return await repository.save({\n ...productDetail,\n ...patch,\n updater: user\n })\n}\n\nexport async function updateMultipleProductDetail(productId, patches, context: ResolverContext) {\n try {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => !patch.id)\n const _updateRecords = patches.filter((patch: any) => patch.id)\n // const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n const productRepo = tx.getRepository(Product)\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n const product: Product = await productRepo.findOne({ where: { id: productId }, relations: ['productDetails'] })\n\n const defaultProductDetail: ProductDetail = patches.find(x => x.isDefault)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = {\n ..._createRecords[i],\n name: _createRecords[i].gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n domain: domain,\n creator: user,\n updater: user\n }\n\n if (newRecord.gtin == null || newRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save(newRecord)\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n let deleteIds = []\n for (let x = 0; x < product.productDetails.length; x++) {\n let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id)\n\n if (updateRecords) {\n const productDetail: ProductDetail = await productDetailRepo.findOneBy({ id: updateRecords.id })\n\n const updateRecord = {\n ...productDetail,\n ...updateRecords,\n name: updateRecords.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n }\n\n if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save({\n ...productDetail,\n ...updateRecord,\n name: updateRecord.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n } else {\n deleteIds.push(product.productDetails[x].id)\n }\n }\n\n await productDetailRepo.delete({ id: In(deleteIds) })\n\n for await (let patch of patches.filter(x => x.childProductDetail)) {\n let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail)\n\n if (matchedChildProductDetail) {\n const childProductDetail: ProductDetail = await productDetailRepo.findOne({\n where: { id: matchedChildProductDetail.id },\n relations: ['product']\n })\n const productDetail: ProductDetail = await productDetailRepo.findOne({\n where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }\n })\n\n await productDetailRepo.save({\n ...productDetail,\n childQty: patch.childQty,\n childProductDetail: childProductDetail,\n updater: user\n })\n }\n }\n\n let defaultProductUpdate: Product\n\n //// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.\n //// To be removed\n let firstCase: ProductDetail = await productDetailRepo.findOne({\n where: { product: { id: product.id }, packingType: Raw(alias => `lower(${alias}) = 'case'`) },\n order: {\n name: 'ASC'\n }\n })\n if (firstCase) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n caseGtin: firstCase.gtin,\n caseWidth: firstCase.width,\n caseHeight: firstCase.height,\n caseDepth: firstCase.depth,\n caseGrossWeight: firstCase.grossWeight,\n caseWeight: firstCase.nettWeight,\n caseVolume: firstCase.volume\n }\n }\n /////////////////////////////////////////////////////\n\n if (defaultProductDetail) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n packingType: defaultProductDetail.packingType,\n primaryUnit: defaultProductDetail.uom,\n primaryValue: defaultProductDetail.uomValue,\n cogsAccountCode: defaultProductDetail.cogsAccountCode\n }\n }\n\n if (!_.isEmpty(defaultProductUpdate)) {\n await productRepo.update(\n {\n id: product.id\n },\n defaultProductUpdate\n )\n }\n\n return results\n } catch (error) {\n throw error\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Raw } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Product } from '../product/product'\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailPatch } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductDetail)\n async updateProductDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n return await updateProductDetail(id, patch, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductDetail])\n async updateMultipleProductDetail(\n @Arg('productId') productId: string,\n @Arg('patches', type => [ProductDetailPatch]) patches: ProductDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail[]> {\n try {\n return await updateMultipleProductDetail(productId, patches, context)\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n\n return true\n }\n}\n\nexport async function createProductDetail(productDetail: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductDetail).save({\n ...productDetail,\n domain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateProductDetail(id: string, patch: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductDetail)\n const productDetail: ProductDetail = await repository.findOne({ where: { id } })\n\n if (patch.gtin == undefined) {\n delete patch.gtin\n }\n\n return await repository.save({\n ...productDetail,\n ...patch,\n updater: user\n })\n}\n\nexport async function updateMultipleProductDetail(productId, patches, context: ResolverContext) {\n try {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => !patch.id)\n const _updateRecords = patches.filter((patch: any) => patch.id)\n // const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n const productRepo = tx.getRepository(Product)\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n const product: Product = await productRepo.findOne({ where: { id: productId }, relations: ['productDetails'] })\n\n const defaultProductDetail: ProductDetail = patches.find(x => x.isDefault)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = {\n ..._createRecords[i],\n name: _createRecords[i].gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n domain: domain,\n creator: user,\n updater: user\n }\n\n if (newRecord.gtin == null || newRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save(newRecord)\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n let deleteIds = []\n for (let x = 0; x < product.productDetails.length; x++) {\n let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id)\n\n if (updateRecords) {\n const productDetail: ProductDetail = await productDetailRepo.findOneBy({ id: updateRecords.id })\n\n const updateRecord = {\n ...productDetail,\n ...updateRecords,\n name: updateRecords.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n }\n\n if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save({\n ...productDetail,\n ...updateRecord,\n name: updateRecord.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n } else {\n deleteIds.push(product.productDetails[x].id)\n }\n }\n\n await productDetailRepo.delete({ id: In(deleteIds) })\n\n for await (let patch of patches.filter(x => x.childProductDetail)) {\n let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail)\n\n if (matchedChildProductDetail) {\n const childProductDetail: ProductDetail = await productDetailRepo.findOne({\n where: { id: matchedChildProductDetail.id },\n relations: ['product']\n })\n const productDetail: ProductDetail = await productDetailRepo.findOne({\n where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }\n })\n\n await productDetailRepo.save({\n ...productDetail,\n childQty: patch.childQty,\n childProductDetail: childProductDetail,\n updater: user\n })\n }\n }\n\n let defaultProductUpdate: Product\n\n //// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.\n //// To be removed\n let firstCase: ProductDetail = await productDetailRepo.findOne({\n where: { product: { id: product.id }, packingType: Raw(alias => `lower(${alias}) = 'case'`) },\n order: {\n name: 'ASC'\n }\n })\n if (firstCase) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n caseGtin: firstCase.gtin,\n caseWidth: firstCase.width,\n caseHeight: firstCase.height,\n caseDepth: firstCase.depth,\n caseGrossWeight: firstCase.grossWeight,\n caseWeight: firstCase.nettWeight,\n caseVolume: firstCase.volume\n }\n }\n /////////////////////////////////////////////////////\n\n if (defaultProductDetail) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n packingType: defaultProductDetail.packingType,\n primaryUnit: defaultProductDetail.uom,\n primaryValue: defaultProductDetail.uomValue,\n cogsAccountCode: defaultProductDetail.cogsAccountCode\n }\n }\n\n if (!_.isEmpty(defaultProductUpdate)) {\n await productRepo.update(\n {\n id: product.id\n },\n defaultProductUpdate\n )\n }\n\n return results\n } catch (error) {\n throw error\n }\n}\n"]}
|
|
@@ -34,7 +34,6 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
34
34
|
return foundProductDetail;
|
|
35
35
|
}
|
|
36
36
|
async productDetails(context, filters, pagination, sortings) {
|
|
37
|
-
var _a;
|
|
38
37
|
const { domain, user } = context.state;
|
|
39
38
|
const { domains } = user;
|
|
40
39
|
const params = { filters, pagination };
|
|
@@ -62,14 +61,14 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
62
61
|
domainRef: false,
|
|
63
62
|
searchables: ['name']
|
|
64
63
|
});
|
|
65
|
-
if (bizplaceFilter
|
|
64
|
+
if (bizplaceFilter?.value) {
|
|
66
65
|
const bizplaceId = bizplaceFilter.value;
|
|
67
66
|
const foundBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
68
67
|
where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,
|
|
69
68
|
relations: ['company', 'company.domain']
|
|
70
69
|
});
|
|
71
70
|
if (foundBizplace) {
|
|
72
|
-
const companyDomain =
|
|
71
|
+
const companyDomain = foundBizplace.company?.domain;
|
|
73
72
|
const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
74
73
|
where: { domain: { id: companyDomain.id } }
|
|
75
74
|
});
|
|
@@ -80,13 +79,13 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
80
79
|
else {
|
|
81
80
|
const warehouseDomain = domain;
|
|
82
81
|
let bizplaceIds = [];
|
|
83
|
-
if (
|
|
82
|
+
if (warehouseDomain?.extType === 'company') {
|
|
84
83
|
const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
85
84
|
where: { domain: { id: warehouseDomain.id } }
|
|
86
85
|
});
|
|
87
86
|
bizplaceIds.push(companyBizplace.id);
|
|
88
87
|
}
|
|
89
|
-
else if (
|
|
88
|
+
else if (warehouseDomain?.extType === 'factory') {
|
|
90
89
|
const myBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
91
90
|
where: { domain: { id: warehouseDomain.id } },
|
|
92
91
|
relations: ['domain']
|
|
@@ -102,7 +101,7 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
102
101
|
}
|
|
103
102
|
qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds });
|
|
104
103
|
}
|
|
105
|
-
if (productFilter
|
|
104
|
+
if (productFilter?.value) {
|
|
106
105
|
if (productFilter.operator === 'eq') {
|
|
107
106
|
qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value });
|
|
108
107
|
}
|
|
@@ -110,7 +109,7 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
110
109
|
qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value });
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
|
-
if (productInfoFilters
|
|
112
|
+
if (productInfoFilters?.value) {
|
|
114
113
|
let productInfo = productInfoFilters;
|
|
115
114
|
qb.andWhere(new typeorm_1.Brackets(qb2 => {
|
|
116
115
|
productInfoFilterColumns.forEach(filter => {
|
|
@@ -119,12 +118,21 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
119
118
|
});
|
|
120
119
|
}));
|
|
121
120
|
}
|
|
122
|
-
if (createArrivalNotice
|
|
121
|
+
if (createArrivalNotice?.value) {
|
|
123
122
|
qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))');
|
|
124
123
|
}
|
|
125
124
|
let [items, total] = await qb.getManyAndCount();
|
|
126
125
|
items = items.map(item => {
|
|
127
|
-
return
|
|
126
|
+
return {
|
|
127
|
+
...item,
|
|
128
|
+
productId: item.product.id,
|
|
129
|
+
name: item.product.name,
|
|
130
|
+
description: item.product.description,
|
|
131
|
+
type: item.product.type,
|
|
132
|
+
sku: item.product.sku,
|
|
133
|
+
isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,
|
|
134
|
+
isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound
|
|
135
|
+
};
|
|
128
136
|
});
|
|
129
137
|
return { items, total };
|
|
130
138
|
}
|
|
@@ -139,7 +147,7 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
139
147
|
where: { domain: { id: customerDomainId.id }, gtin },
|
|
140
148
|
relations: ['product']
|
|
141
149
|
});
|
|
142
|
-
if (
|
|
150
|
+
if (items?.length <= 0)
|
|
143
151
|
throw new Error('No product candidate found');
|
|
144
152
|
return { items, total };
|
|
145
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-detail-query.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getCompaniesBizplaces, getPartnersCompanyBizplaces } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'\n\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailList } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailQuery {\n @Directive('@transaction')\n @Query(returns => ProductDetail)\n async productDetail(\n @Arg('gtin') gtin: string,\n @Arg('productId') productId: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n const { tx } = context.state\n\n const customerDomain = await tx.getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomain) {\n throw new Error('Unable to find company domain')\n }\n\n var foundProductDetail\n if (productId) {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, product: { id: productId } },\n relations: ['product']\n })\n } else {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, gtin },\n relations: ['product']\n })\n }\n\n if (!foundProductDetail) throw new Error('No product candidate found')\n\n return foundProductDetail\n }\n\n @Query(returns => ProductDetailList)\n async productDetails(\n @Ctx() context: ResolverContext,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<ProductDetailList> {\n const { domain, user } = context.state\n const { domains } = user\n\n const params = { filters, pagination }\n const productInfoFilters = params.filters.find(x => x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type')\n\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productFilter = params.filters.find(x => x.name == 'product')\n const createArrivalNotice = params.filters.find(x => x.name == 'create_arrival_notice')\n const productInfoFilterColumns = ['sku', 'name', 'description', 'type', 'brand']\n params.filters = params.filters.filter(\n x =>\n x.name != 'product_info' &&\n x.name != 'bizplace_id' &&\n x.name != 'product' &&\n x.name != 'sku' &&\n x.name != 'brand' &&\n x.name != 'name' &&\n x.name != 'description' &&\n x.name != 'type' &&\n x.name != 'create_arrival_notice'\n )\n\n const qb: SelectQueryBuilder<ProductDetail> = getRepository(ProductDetail).createQueryBuilder('ProductDetail')\n qb.innerJoinAndSelect('ProductDetail.product', 'Product', '\"Product\".\"deleted_at\" IS NULL')\n qb.innerJoinAndSelect('Product.bizplace', 'Bizplace')\n qb.leftJoinAndSelect('ProductDetail.childProductDetail', 'ChildProductDetail')\n qb.leftJoinAndSelect('Product.creator', 'Creator')\n qb.leftJoinAndSelect('Product.updater', 'Updater')\n\n buildQuery(qb, params, context, {\n domainRef: false,\n searchables: ['name']\n })\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n qb.andWhere('Bizplace.id IN (:...bizplaceIds)', { bizplaceIds: [...new Set(bizplaceIds)] })\n }\n } else {\n const warehouseDomain: Domain = domain\n let bizplaceIds = []\n if (warehouseDomain?.extType === 'company') {\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } }\n })\n bizplaceIds.push(companyBizplace.id)\n } else if (warehouseDomain?.extType === 'factory') {\n const myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } },\n relations: ['domain']\n })\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, myBizplace.id, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n if (productFilter.operator === 'eq') {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\n } else if (productFilter.operator === 'in') {\n qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value })\n }\n }\n\n if (productInfoFilters?.value) {\n let productInfo = productInfoFilters\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoFilterColumns.forEach(filter => {\n const condition = buildCondition('Product', filter, productInfo.operator, productInfo.value, productInfo.relation, Object.keys(qb.getParameters()).length)\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))')\n }\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n productId: item.product.id,\n name: item.product.name,\n description: item.product.description,\n type: item.product.type,\n sku: item.product.sku,\n isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,\n isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => ProductDetailList)\n async checkGtin(\n @Arg('gtin') gtin: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailList> {\n try {\n const { tx } = context.state\n\n const customerDomainId: Domain = await getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomainId) throw new Error('Unable to find company domain')\n var foundProductDetails\n\n let [items, total] = await getRepository(ProductDetail).findAndCount({\n where: { domain: { id: customerDomainId.id }, gtin },\n relations: ['product']\n })\n\n if (items?.length <= 0) throw new Error('No product candidate found')\n\n return { items, total }\n } catch (e) {\n throw new Error(e)\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() productDetail: ProductDetail): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: productDetail.domain.id })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.updater.id })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.creator.id })\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-detail-query.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAwF;AACxF,qCAAsD;AAEtD,yDAAgD;AAChD,uDAAuG;AACvG,iDAAsH;AAEtH,qDAAgD;AAChD,iEAA0D;AAGnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGvB,AAAN,KAAK,CAAC,aAAa,CACJ,IAAY,EACP,SAAiB,EACH,uBAA+B,EACxD,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAChG,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,kBAAkB,CAAA;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,kBAAkB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;gBACjE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;gBACxE,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,kBAAkB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;gBACjE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;gBAClD,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAEtE,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CACX,OAAwB,EACuB,OAAkB,EACb,UAAuB,EAC1B,QAAoB;QAE5E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAExB,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;QACtC,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAA;QAEnK,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,CAAA;QACxE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;QACnE,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,uBAAuB,CAAC,CAAA;QACvF,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAChF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,IAAI,IAAI,cAAc;YACxB,CAAC,CAAC,IAAI,IAAI,aAAa;YACvB,CAAC,CAAC,IAAI,IAAI,SAAS;YACnB,CAAC,CAAC,IAAI,IAAI,KAAK;YACf,CAAC,CAAC,IAAI,IAAI,OAAO;YACjB,CAAC,CAAC,IAAI,IAAI,MAAM;YAChB,CAAC,CAAC,IAAI,IAAI,aAAa;YACvB,CAAC,CAAC,IAAI,IAAI,MAAM;YAChB,CAAC,CAAC,IAAI,IAAI,uBAAuB,CACpC,CAAA;QAED,MAAM,EAAE,GAAsC,IAAA,qBAAa,EAAC,8BAAa,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAA;QAC9G,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,SAAS,EAAE,gCAAgC,CAAC,CAAA;QAC3F,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;QACrD,EAAE,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,CAAA;QAC9E,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QAClD,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QAElD,IAAA,kBAAU,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;YAC9B,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,CAAC,MAAM,CAAC;SACtB,CAAC,CAAA;QAEF,IAAI,cAAc,EAAE,KAAK,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAW,cAAc,CAAC,KAAK,CAAA;YAE/C,MAAM,aAAa,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;gBACpE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,6DAA6D;gBACvF,SAAS,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;aACzC,CAAC,CAAA;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,aAAa,GAAW,aAAa,CAAC,OAAO,EAAE,MAAM,CAAA;gBAC3D,MAAM,eAAe,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;oBACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE;iBAC5C,CAAC,CAAA;gBAEF,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;gBAC1D,EAAE,CAAC,QAAQ,CAAC,kCAAkC,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAW,MAAM,CAAA;YACtC,IAAI,WAAW,GAAG,EAAE,CAAA;YACpB,IAAI,eAAe,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,eAAe,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;oBACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE;iBAC9C,CAAC,CAAA;gBACF,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;YACtC,CAAC;iBAAM,IAAI,eAAe,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,UAAU,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;oBACjE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE;oBAC7C,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACtB,CAAC,CAAA;gBACF,MAAM,kBAAkB,GAAe,MAAM,IAAA,gCAAqB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;gBAC5F,MAAM,wBAAwB,GAAe,MAAM,IAAA,sCAA2B,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC5F,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACzI,CAAC;iBAAM,CAAC;gBACN,MAAM,kBAAkB,GAAe,MAAM,IAAA,gCAAqB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;gBAC5F,MAAM,wBAAwB,GAAe,MAAM,IAAA,sCAA2B,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC5F,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1H,CAAC;YAED,EAAE,CAAC,QAAQ,CAAC,0CAA0C,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QACvF,CAAC;QAED,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;YACzB,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpC,EAAE,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAA;YAC1F,CAAC;iBAAM,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC3C,EAAE,CAAC,QAAQ,CAAC,4CAA4C,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/F,CAAC;QACH,CAAC;QAED,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;YAC9B,IAAI,WAAW,GAAG,kBAAkB,CAAA;YACpC,EAAE,CAAC,QAAQ,CACT,IAAI,kBAAQ,CAAC,GAAG,CAAC,EAAE;gBACjB,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACxC,MAAM,SAAS,GAAG,IAAA,sBAAc,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;oBAE1J,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;gBACrD,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,mBAAmB,EAAE,KAAK,EAAE,CAAC;YAC/B,EAAE,CAAC,QAAQ,CAAC,sIAAsI,CAAC,CAAA;QACrJ,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;QAE/C,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO;gBACL,GAAG,IAAI;gBACP,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;gBACrB,oCAAoC,EAAE,IAAI,CAAC,OAAO,CAAC,oCAAoC;gBACvF,qCAAqC,EAAE,IAAI,CAAC,OAAO,CAAC,qCAAqC;aAC1F,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CACA,IAAY,EACO,uBAA+B,EACxD,OAAwB;QAE/B,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,MAAM,gBAAgB,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAA;YACvG,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YACvE,IAAI,mBAAmB,CAAA;YAEvB,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC,CAAC,YAAY,CAAC;gBACnE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;gBACpD,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAA;YAEF,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAErE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,aAA4B;QAC/C,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,aAA4B;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;CACF,CAAA;AAzMY,gDAAkB;AAGvB;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,CAAC;IAE7B,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,yBAAyB,CAAC,CAAA;IAC9B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAyBP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IAEjC,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,cAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,mBAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,eAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;4DADiB,kBAAU;;wDAyHnF;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,wCAAiB,CAAC;IAEjC,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,yBAAyB,CAAC,CAAA;IAC9B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mDAoBP;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;gDAEhD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAgB,8BAAa;;iDAEjD;6BAxMU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,kBAAkB,CAyM9B","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getCompaniesBizplaces, getPartnersCompanyBizplaces } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'\n\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailList } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailQuery {\n @Directive('@transaction')\n @Query(returns => ProductDetail)\n async productDetail(\n @Arg('gtin') gtin: string,\n @Arg('productId') productId: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n const { tx } = context.state\n\n const customerDomain = await tx.getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomain) {\n throw new Error('Unable to find company domain')\n }\n\n var foundProductDetail\n if (productId) {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, product: { id: productId } },\n relations: ['product']\n })\n } else {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, gtin },\n relations: ['product']\n })\n }\n\n if (!foundProductDetail) throw new Error('No product candidate found')\n\n return foundProductDetail\n }\n\n @Query(returns => ProductDetailList)\n async productDetails(\n @Ctx() context: ResolverContext,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<ProductDetailList> {\n const { domain, user } = context.state\n const { domains } = user\n\n const params = { filters, pagination }\n const productInfoFilters = params.filters.find(x => x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type')\n\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productFilter = params.filters.find(x => x.name == 'product')\n const createArrivalNotice = params.filters.find(x => x.name == 'create_arrival_notice')\n const productInfoFilterColumns = ['sku', 'name', 'description', 'type', 'brand']\n params.filters = params.filters.filter(\n x =>\n x.name != 'product_info' &&\n x.name != 'bizplace_id' &&\n x.name != 'product' &&\n x.name != 'sku' &&\n x.name != 'brand' &&\n x.name != 'name' &&\n x.name != 'description' &&\n x.name != 'type' &&\n x.name != 'create_arrival_notice'\n )\n\n const qb: SelectQueryBuilder<ProductDetail> = getRepository(ProductDetail).createQueryBuilder('ProductDetail')\n qb.innerJoinAndSelect('ProductDetail.product', 'Product', '\"Product\".\"deleted_at\" IS NULL')\n qb.innerJoinAndSelect('Product.bizplace', 'Bizplace')\n qb.leftJoinAndSelect('ProductDetail.childProductDetail', 'ChildProductDetail')\n qb.leftJoinAndSelect('Product.creator', 'Creator')\n qb.leftJoinAndSelect('Product.updater', 'Updater')\n\n buildQuery(qb, params, context, {\n domainRef: false,\n searchables: ['name']\n })\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n qb.andWhere('Bizplace.id IN (:...bizplaceIds)', { bizplaceIds: [...new Set(bizplaceIds)] })\n }\n } else {\n const warehouseDomain: Domain = domain\n let bizplaceIds = []\n if (warehouseDomain?.extType === 'company') {\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } }\n })\n bizplaceIds.push(companyBizplace.id)\n } else if (warehouseDomain?.extType === 'factory') {\n const myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } },\n relations: ['domain']\n })\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, myBizplace.id, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n if (productFilter.operator === 'eq') {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\n } else if (productFilter.operator === 'in') {\n qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value })\n }\n }\n\n if (productInfoFilters?.value) {\n let productInfo = productInfoFilters\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoFilterColumns.forEach(filter => {\n const condition = buildCondition('Product', filter, productInfo.operator, productInfo.value, productInfo.relation, Object.keys(qb.getParameters()).length)\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))')\n }\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n productId: item.product.id,\n name: item.product.name,\n description: item.product.description,\n type: item.product.type,\n sku: item.product.sku,\n isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,\n isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => ProductDetailList)\n async checkGtin(\n @Arg('gtin') gtin: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailList> {\n try {\n const { tx } = context.state\n\n const customerDomainId: Domain = await getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomainId) throw new Error('Unable to find company domain')\n var foundProductDetails\n\n let [items, total] = await getRepository(ProductDetail).findAndCount({\n where: { domain: { id: customerDomainId.id }, gtin },\n relations: ['product']\n })\n\n if (items?.length <= 0) throw new Error('No product candidate found')\n\n return { items, total }\n } catch (e) {\n throw new Error(e)\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() productDetail: ProductDetail): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: productDetail.domain.id })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.updater.id })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.creator.id })\n }\n}\n"]}
|