@things-factory/product-base 4.0.36 → 4.0.40

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.
@@ -20,6 +20,69 @@ const shell_1 = require("@things-factory/shell");
20
20
  const product_detail_1 = require("../product-detail/product-detail");
21
21
  const product_set_1 = require("../product-set/product-set");
22
22
  let Product = Product_1 = class Product {
23
+ constructor(obj) {
24
+ if (obj) {
25
+ this.id = obj.Product_id;
26
+ this.sku = obj.Product_sku;
27
+ this.name = obj.Product_name;
28
+ this.description = obj.Product_description;
29
+ this.bundleQty = obj.Product_bundle_qty;
30
+ this.type = obj.Product_type;
31
+ this.packingType = obj.Product_packing_type;
32
+ this.expirationPeriod = obj.Product_expiration_period;
33
+ this.weightUnit = obj.Product_weight_unit;
34
+ this.weight = obj.Product_weight;
35
+ this.density = obj.Product_density;
36
+ this.lengthUnit = obj.Product_length_unit;
37
+ this.costPrice = obj.Product_cost_price;
38
+ this.sellPrice = obj.Product_sell_price;
39
+ this.width = obj.Product_width;
40
+ this.depth = obj.Product_depth;
41
+ this.height = obj.Product_height;
42
+ this.primaryUnit = obj.Product_primary_unit;
43
+ this.primaryValue = obj.Product_primary_value;
44
+ this.auxUnit1 = obj.Product_aux_unit_1;
45
+ this.auxValue1 = obj.Product_aux_value_1;
46
+ this.auxUnit2 = obj.Product_aux_unit_2;
47
+ this.auxValue2 = obj.Product_aux_value_2;
48
+ this.auxUnit3 = obj.Product_aux_unit_3;
49
+ this.auxValue3 = obj.Product_aux_value_3;
50
+ this.createdAt = obj.Product_created_at;
51
+ this.updatedAt = obj.Product_updated_at;
52
+ this.movement = obj.Product_movement;
53
+ this.inventoryAccountCode = obj.Product_inventory_account_code;
54
+ this.cogsAccountCode = obj.Product_cogs_account_code;
55
+ this.isTrackedAsInventory = obj.Product_is_tracked_as_inventory;
56
+ this.mrpPrice = obj.Product_mrp_price;
57
+ this.afterTaxCostPrice = obj.Product_after_tax_cost_price;
58
+ this.afterTaxSalesPrice = obj.Product_after_tax_sales_price;
59
+ this.bufferQty = obj.Product_buffer_qty;
60
+ this.discountId = obj.Product_discount_id;
61
+ this.status = obj.Product_status;
62
+ this.brandSku = obj.Product_brand_sku;
63
+ this.brand = obj.Product_brand;
64
+ this.subBrand = obj.Product_sub_brand;
65
+ this.gtin = obj.Product_gtin;
66
+ this.caseGtin = obj.Product_case_gtin;
67
+ this.grossWeight = obj.Product_gross_weight;
68
+ this.caseWeight = obj.Product_case_weight;
69
+ this.caseGrossWeight = obj.Product_case_gross_weight;
70
+ this.volume = obj.Product_volume;
71
+ this.caseWidth = obj.Product_case_width;
72
+ this.caseDepth = obj.Product_case_depth;
73
+ this.caseHeight = obj.Product_case_height;
74
+ this.caseVolume = obj.Product_case_volume;
75
+ this.volumeSize = obj.Product_volume_size;
76
+ this.minQty = obj.Product_min_qty;
77
+ this.maxQty = obj.Product_max_qty;
78
+ this.isCompany = obj.Product_is_company;
79
+ this.deletedAt = obj.Product_deleted_at;
80
+ this.isRequiredCheckExpiry = obj.Product_is_required_check_expiry;
81
+ this.isRequireSerialNumberScanning = obj.Product_is_require_serial_number_scanning;
82
+ this.bizplace = { id: obj.Product_bizplace_id };
83
+ this.domain = { id: obj.Product_domain_id };
84
+ }
85
+ }
23
86
  };
24
87
  __decorate([
25
88
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
@@ -35,6 +98,18 @@ __decorate([
35
98
  (0, typeorm_1.RelationId)((product) => product.domain),
36
99
  __metadata("design:type", String)
37
100
  ], Product.prototype, "domainId", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.RelationId)((product) => product.bizplace),
103
+ __metadata("design:type", String)
104
+ ], Product.prototype, "bizplaceId", void 0);
105
+ __decorate([
106
+ (0, typeorm_1.RelationId)((product) => product.productRef),
107
+ __metadata("design:type", String)
108
+ ], Product.prototype, "productRefId", void 0);
109
+ __decorate([
110
+ (0, typeorm_1.RelationId)((product) => product.parentProductRef),
111
+ __metadata("design:type", String)
112
+ ], Product.prototype, "parentProductRefId", void 0);
38
113
  __decorate([
39
114
  (0, typeorm_1.ManyToOne)(type => biz_base_1.Bizplace),
40
115
  (0, type_graphql_1.Field)(),
@@ -410,11 +485,20 @@ __decorate([
410
485
  (0, typeorm_1.RelationId)((product) => product.routing),
411
486
  __metadata("design:type", String)
412
487
  ], Product.prototype, "routingId", void 0);
488
+ __decorate([
489
+ (0, type_graphql_1.Field)(type => String, { nullable: true }),
490
+ __metadata("design:type", String)
491
+ ], Product.prototype, "thumbnail", void 0);
492
+ __decorate([
493
+ (0, type_graphql_1.Field)({ nullable: true }),
494
+ __metadata("design:type", String)
495
+ ], Product.prototype, "productInformation", void 0);
413
496
  Product = Product_1 = __decorate([
414
497
  (0, typeorm_1.Entity)(),
415
498
  (0, typeorm_1.Index)('ix_product_0', (product) => [product.domain, product.bizplace, product.name, product.description, product.weight], { unique: true }),
416
499
  (0, typeorm_1.Index)('ix_product_1', (product) => [product.bizplace]),
417
- (0, type_graphql_1.ObjectType)()
500
+ (0, type_graphql_1.ObjectType)(),
501
+ __metadata("design:paramtypes", [Object])
418
502
  ], Product);
419
503
  exports.Product = Product;
420
504
  //# sourceMappingURL=product.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../../../server/service/product/product.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../../../server/service/product/product.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/product-base",
3
- "version": "4.0.36",
3
+ "version": "4.0.40",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,8 +24,8 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/biz-base": "^4.0.36",
28
- "@things-factory/routing-base": "^4.0.36"
27
+ "@things-factory/biz-base": "^4.0.40",
28
+ "@things-factory/routing-base": "^4.0.40"
29
29
  },
30
- "gitHead": "132ab9f8af8c34f73bcd81a9776769a6929e13ee"
30
+ "gitHead": "f0697b5ab411e4aa1a52de19a6c135f39686eca1"
31
31
  }
@@ -1,7 +1,22 @@
1
1
  import promisesAll from 'promises-all'
2
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
3
- import { EntityManager, getRepository, In, Repository } from 'typeorm'
2
+ import {
3
+ Arg,
4
+ Ctx,
5
+ Directive,
6
+ Mutation,
7
+ Resolver
8
+ } from 'type-graphql'
9
+ import {
10
+ EntityManager,
11
+ getRepository,
12
+ In,
13
+ Repository
14
+ } from 'typeorm'
4
15
 
16
+ import {
17
+ createAttachment,
18
+ deleteAttachmentsByRef
19
+ } from '@things-factory/attachment-base'
5
20
  import { User } from '@things-factory/auth-base'
6
21
  import { Bizplace } from '@things-factory/biz-base'
7
22
  import { logger } from '@things-factory/env'
@@ -16,7 +31,10 @@ import {
16
31
  } from '../product-detail/product-detail-mutation'
17
32
  import { ProductSet } from '../product-set/product-set'
18
33
  import { Product } from './product'
19
- import { NewProduct, ProductPatch } from './product-types'
34
+ import {
35
+ NewProduct,
36
+ ProductPatch
37
+ } from './product-types'
20
38
  import { validateProduct } from './validate-product'
21
39
 
22
40
  @Resolver(Product)
@@ -283,6 +301,19 @@ export async function createProduct(product: any, context: any) {
283
301
 
284
302
  await updateMultipleProductDetail(result.id, productDetails, context)
285
303
 
304
+ if (product.thumbnail) {
305
+ await createAttachment(
306
+ null,
307
+ {
308
+ attachment: {
309
+ file: product.thumbnail,
310
+ refBy: result.id
311
+ }
312
+ },
313
+ context
314
+ )
315
+ }
316
+
286
317
  return result
287
318
  } catch (error) {
288
319
  throw error
@@ -368,6 +399,21 @@ export async function updateProduct(id: string, patch, context) {
368
399
  )
369
400
  }
370
401
 
402
+ const productId = id
403
+ if (patch.thumbnail) {
404
+ await deleteAttachmentsByRef(null, { refBys: [productId] }, context)
405
+ await createAttachment(
406
+ null,
407
+ {
408
+ attachment: {
409
+ file: patch.thumbnail,
410
+ refBy: product.id
411
+ }
412
+ },
413
+ context
414
+ )
415
+ }
416
+
371
417
  return product
372
418
  } catch (error) {
373
419
  throw error
@@ -1,6 +1,7 @@
1
1
  import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
2
  import { Brackets, getRepository, In, SelectQueryBuilder } from 'typeorm'
3
3
 
4
+ import { Attachment } from '@things-factory/attachment-base'
4
5
  import { User } from '@things-factory/auth-base'
5
6
  import {
6
7
  Bizplace,
@@ -49,28 +50,14 @@ export class ProductQuery {
49
50
  async products(@Args() params: ListParam, @Ctx() context: any): Promise<ProductList> {
50
51
  const { domain, user }: { domain: Domain; user: User } = context.state
51
52
  const { domains }: { domains: Domain[] } = user
52
-
53
- const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder()
54
-
55
- const productFilters = params.filters.filter(x => x.name == 'product_info')
56
- const filters = params.filters.filter(x => x.name != 'product_info')
57
- const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand']
53
+ let bizplaces: Bizplace[]
58
54
 
59
55
  if (!params.filters.find((filter: any) => filter.name === 'bizplace_id')) {
60
56
  const warehouseDomain: Domain = domain
61
57
  const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)
62
58
  const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)
63
59
 
64
- const companyBizIds: string[] = companiesBizplaces.map((biz: Bizplace) => biz.id)
65
-
66
- params.filters = [
67
- ...filters,
68
- {
69
- name: 'bizplace_id',
70
- operator: 'in',
71
- value: [...companyBizIds, ...partnersCompanyBizplaces.map(biz => biz.id)]
72
- }
73
- ]
60
+ bizplaces = [...companiesBizplaces, ...partnersCompanyBizplaces]
74
61
  } else {
75
62
  const bizplaceId: string[] = params.filters.filter(param => param.name == 'bizplace_id').map(item => item.value)
76
63
 
@@ -83,45 +70,15 @@ export class ProductQuery {
83
70
  const companyDomain: Domain = foundBizplace.company?.domain
84
71
  const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain: companyDomain } })
85
72
 
86
- params.filters
87
- .filter(x => x.name == 'bizplace_id')
88
- .map(itm => {
89
- itm.operator = 'in'
90
- itm.value = [companyBizplace.id, foundBizplace.id]
91
- })
73
+ bizplaces = [companyBizplace, foundBizplace]
92
74
  }
93
75
  }
94
76
 
95
- params.filters = [...filters, { name: 'deletedAt', operator: 'is_null' }]
96
-
97
- buildQuery(qb, params, context, false)
98
- if (productFilters && productFilters.length > 0) {
99
- let productInfo = productFilters[0]
100
- qb.andWhere(
101
- new Brackets(qb2 => {
102
- productFilterColumns.forEach(filter => {
103
- const condition = buildCondition(
104
- qb.alias,
105
- filter,
106
- productInfo.operator,
107
- productInfo.value,
108
- productInfo.relation,
109
- Object.keys(qb.getParameters()).length
110
- )
111
-
112
- qb2.orWhere(condition.clause, condition.parameters)
113
- })
114
- })
115
- )
116
- }
77
+ const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)
117
78
 
118
79
  let [items, total] = await qb
119
- .leftJoinAndSelect('Product.bizplace', 'Bizplace')
120
- .leftJoinAndSelect('Product.productRef', 'ProductRef')
121
80
  .leftJoinAndSelect('Product.productDetails', 'ProductDetails')
122
81
  .leftJoinAndSelect('ProductDetails.childProductDetail', 'ChildProductDetail')
123
- .leftJoinAndSelect('Product.creator', 'Creator')
124
- .leftJoinAndSelect('Product.updater', 'Updater')
125
82
  .getManyAndCount()
126
83
 
127
84
  return { items, total }
@@ -131,53 +88,16 @@ export class ProductQuery {
131
88
  @Query(returns => ProductList)
132
89
  async myBizplaceProducts(@Args() params: ListParam, @Ctx() context: any): Promise<ProductList> {
133
90
  const { domain, user }: { domain: Domain; user: User } = context.state
91
+ const bizplaceFilter = params.filters.find(filter => filter.name === 'bizplace_id')
134
92
 
135
- const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder()
136
-
137
- const productFilters = params.filters.filter(x => x.name == 'product_info')
138
- const deletedFilter = params.filters.find(x => x.name == 'deleted')
139
- const filters = params.filters.filter(x => x.name != 'product_info' && x.name != 'deleted')
140
- const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand']
141
-
142
- if (!params.filters.find(filter => filter.name === 'bizplace_id')) {
143
- // const companyBizplace: Bizplace = await getCompanyBizplace(domain, user)
144
- let bizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain } })
145
- params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [bizplace.id] }]
93
+ let bizplaces: Bizplace[] = []
94
+ if (!bizplaceFilter) {
95
+ bizplaces.push(await getRepository(Bizplace).findOne({ where: { domain } }))
146
96
  }
147
97
 
148
- params.filters = [
149
- ...params.filters,
150
- { name: 'deletedAt', operator: deletedFilter?.value ? 'is_not_null' : 'is_null' }
151
- ]
152
-
153
- buildQuery(qb, params, context, false)
154
- if (productFilters && productFilters.length > 0) {
155
- let productInfo = productFilters[0]
156
- qb.andWhere(
157
- new Brackets(qb2 => {
158
- productFilterColumns.forEach(filter => {
159
- const condition = buildCondition(
160
- qb.alias,
161
- filter,
162
- productInfo.operator,
163
- productInfo.value,
164
- productInfo.relation,
165
- Object.keys(qb.getParameters()).length
166
- )
167
-
168
- qb2.orWhere(condition.clause, condition.parameters)
169
- })
170
- })
171
- )
172
- }
98
+ const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)
173
99
 
174
- let [items, total] = await qb
175
- .leftJoinAndSelect('Product.bizplace', 'Bizplace')
176
- .leftJoinAndSelect('Product.productRef', 'ProductRef')
177
- .leftJoinAndSelect('Product.parentProductRef', 'ParentProductRef')
178
- .leftJoinAndSelect('Product.productDetails', 'ProductDetails')
179
- .leftJoinAndSelect('Product.updater', 'Updater')
180
- .getManyAndCount()
100
+ let [items, total] = await qb.leftJoinAndSelect('Product.productDetails', 'ProductDetails').getManyAndCount()
181
101
 
182
102
  items = items.map(itm => {
183
103
  let defaultProductDetail = itm.productDetails.find(itm => itm.isDefault)
@@ -194,68 +114,31 @@ export class ProductQuery {
194
114
  @Query(returns => ProductList)
195
115
  async productsByBizplace(@Args() params: ListParam, @Ctx() context: any): Promise<ProductList> {
196
116
  const { domain, user }: { domain: Domain; user: User } = context.state
197
- try {
198
- const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder()
117
+ const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')
199
118
 
200
- const productFilters = params.filters.filter(x => x.name == 'product_info')
201
- const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')
202
- const deletedFilter = params.filters.find(x => x.name == 'deleted')
203
- const filters = params.filters.filter(
204
- x => x.name != 'product_info' && x.name != 'bizplace' && x.name != 'deleted'
205
- )
206
- const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand']
207
-
208
- let companyBizplace: Bizplace, myBizplace: Bizplace
119
+ try {
120
+ let bizplaces: Bizplace[]
209
121
  if (!bizplaceFilter || bizplaceFilter.value == '') {
210
- myBizplace = await getMyBizplace(domain, user)
211
- companyBizplace = await getCompanyBizplace(domain, user)
122
+ bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]
212
123
  } else {
213
- myBizplace = await getRepository(Bizplace).findOne(bizplaceFilter.value, {
124
+ let myBizplace: Bizplace = await getRepository(Bizplace).findOne(bizplaceFilter.value, {
214
125
  relations: ['company', 'company.domain']
215
126
  })
216
- companyBizplace = await getRepository(Bizplace).findOne({
217
- where: { domain: myBizplace.company.domain }
218
- })
219
- }
220
127
 
221
- params.filters = [
222
- ...filters,
223
- { name: 'deletedAt', operator: deletedFilter?.value ? 'is_not_null' : 'is_null' },
224
- ,
225
- { name: 'bizplace_id', operator: 'in', value: [companyBizplace.id, myBizplace.id] }
226
- ]
227
-
228
- buildQuery(qb, params, context, false)
229
- if (productFilters && productFilters.length > 0) {
230
- let productInfo = productFilters[0]
231
- qb.andWhere(
232
- new Brackets(qb2 => {
233
- productFilterColumns.forEach(filter => {
234
- const condition = buildCondition(
235
- qb.alias,
236
- filter,
237
- productInfo.operator,
238
- productInfo.value,
239
- productInfo.relation,
240
- Object.keys(qb.getParameters()).length
241
- )
242
-
243
- qb2.orWhere(condition.clause, condition.parameters)
244
- })
128
+ bizplaces = [
129
+ myBizplace,
130
+ await getRepository(Bizplace).findOne({
131
+ where: { domain: myBizplace.company.domain }
245
132
  })
246
- )
133
+ ]
247
134
  }
248
135
 
249
- qb.leftJoinAndSelect('Product.bizplace', 'Bizplace')
250
- .leftJoinAndSelect('Product.productRef', 'ProductRef')
251
- .leftJoinAndSelect('Product.parentProductRef', 'ParentProductRef')
252
- .leftJoinAndSelect('Product.productDetails', 'ProductDetails')
253
- .leftJoinAndSelect('Product.creator', 'Creator')
254
- .leftJoinAndSelect('Product.updater', 'Updater')
255
- let [items, total] = await qb.getManyAndCount()
136
+ const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)
137
+
138
+ let [items, total] = await qb.leftJoinAndSelect('Product.productDetails', 'ProductDetails').getManyAndCount()
256
139
 
257
140
  items = items.map(itm => {
258
- let defaultProductDetail = itm.productDetails.find(itm => itm.isDefault)
141
+ let defaultProductDetail = itm.productDetails?.find(itm => itm.isDefault)
259
142
  return {
260
143
  ...itm,
261
144
  ...new ProductDetail(defaultProductDetail, true)
@@ -268,18 +151,129 @@ export class ProductQuery {
268
151
  }
269
152
  }
270
153
 
154
+ /**
155
+ * @description this resolver was specially made to return huge products data
156
+ * without dropping off performance due to typegraphql limitations
157
+ * @returns pure product data only. there will be no other table joined to avoid
158
+ * ORM lagging issue (converting to object extremely withdraws the performance)
159
+ * */
160
+ @Directive('@privilege(category: "order", privilege: "query")')
161
+ @Query(returns => ProductList)
162
+ async pureProductsByBizplace(@Args() params: ListParam, @Ctx() context: any): Promise<ProductList> {
163
+ const { domain, user }: { domain: Domain; user: User } = context.state
164
+ const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')
165
+
166
+ try {
167
+ let bizplaces: Bizplace[]
168
+ if (!bizplaceFilter || bizplaceFilter.value == '') {
169
+ bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]
170
+ } else {
171
+ let myBizplace: Bizplace = await getRepository(Bizplace).findOne(bizplaceFilter.value, {
172
+ relations: ['company', 'company.domain']
173
+ })
174
+
175
+ bizplaces = [
176
+ myBizplace,
177
+ await getRepository(Bizplace).findOne({
178
+ where: { domain: myBizplace.company.domain }
179
+ })
180
+ ]
181
+ }
182
+
183
+ const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)
184
+ let items = await qb.getRawMany()
185
+ let total = await qb.getCount()
186
+
187
+ return { items: items.map(item => new Product(item)), total }
188
+ } catch (error) {
189
+ throw error
190
+ }
191
+ }
192
+
271
193
  @FieldResolver(type => Domain)
272
194
  async domain(@Root() product: Product): Promise<Domain> {
273
- return await getRepository(Domain).findOne(product.domainId)
195
+ if (product.domainId) return await getRepository(Domain).findOne(product.domainId)
196
+ else return null
197
+ }
198
+
199
+ @FieldResolver(type => Bizplace)
200
+ async bizplace(@Root() product: Product): Promise<Bizplace> {
201
+ if (product.bizplaceId) return await getRepository(Bizplace).findOne(product.bizplaceId)
202
+ else return null
274
203
  }
275
204
 
276
205
  @FieldResolver(type => User)
277
206
  async creator(@Root() product: Product): Promise<User> {
278
- return await getRepository(User).findOne(product.creatorId)
207
+ if (product.creatorId) return await getRepository(User).findOne(product.creatorId)
208
+ else return null
279
209
  }
280
210
 
281
211
  @FieldResolver(type => User)
282
212
  async updater(@Root() product: Product): Promise<User> {
283
- return await getRepository(User).findOne(product.updaterId)
213
+ if (product.updaterId) return await getRepository(User).findOne(product.updaterId)
214
+ else return null
215
+ }
216
+
217
+ @FieldResolver(type => Product)
218
+ async parentProductRef(@Root() product: Product): Promise<Product> {
219
+ if (product.parentProductRefId) return await getRepository(Product).findOne(product.parentProductRefId)
220
+ else return null
284
221
  }
222
+
223
+ @FieldResolver(type => Product)
224
+ async productRef(@Root() product: Product): Promise<Product> {
225
+ if (product.productRefId) return await getRepository(Product).findOne(product.productRefId)
226
+ else return null
227
+ }
228
+
229
+ @FieldResolver(type => String)
230
+ async thumbnail(@Root() product: Product): Promise<string | undefined> {
231
+ const attachment: Attachment = await getRepository(Attachment).findOne({
232
+ where: {
233
+ domain: product.domainId,
234
+ refBy: product.id
235
+ }
236
+ })
237
+
238
+ return attachment?.fullpath
239
+ }
240
+ productInformation(@Root() product: Product): String {
241
+ return `[${product.sku}] ${product.name}${product.description ? ` - ${product.description}` : ''}`
242
+ }
243
+ }
244
+
245
+ function buildCustomConditions(params, context, bizplaces): SelectQueryBuilder<Product> {
246
+ const deletedFilter = params.filters.find(x => x.name == 'deleted')
247
+ const productFilters = params.filters.find(x => x.name == 'product_info')
248
+ const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand']
249
+
250
+ params.filters = [
251
+ ...params.filters.filter(x => ['product_info', 'bizplace', 'bizplace_id', 'deleted'].indexOf(x.name) == -1),
252
+ { name: 'deletedAt', operator: deletedFilter?.value ? 'is_not_null' : 'is_null' },
253
+ { name: 'bizplace_id', operator: 'in', value: bizplaces.map(bizplace => bizplace.id) }
254
+ ]
255
+
256
+ const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder()
257
+
258
+ buildQuery(qb, params, context, false)
259
+ if (productFilters) {
260
+ qb.andWhere(
261
+ new Brackets(qb2 => {
262
+ productFilterColumns.forEach(filter => {
263
+ const condition = buildCondition(
264
+ qb.alias,
265
+ filter,
266
+ productFilters.operator,
267
+ productFilters.value,
268
+ productFilters.relation,
269
+ Object.keys(qb.getParameters()).length
270
+ )
271
+
272
+ qb2.orWhere(condition.clause, condition.parameters)
273
+ })
274
+ })
275
+ )
276
+ }
277
+
278
+ return qb
285
279
  }
@@ -1,3 +1,7 @@
1
+ import {
2
+ FileUpload,
3
+ GraphQLUpload
4
+ } from 'graphql-upload'
1
5
  import {
2
6
  Field,
3
7
  Float,
@@ -182,6 +186,9 @@ export class NewProduct {
182
186
 
183
187
  @Field(type => ObjectRef, { nullable: true })
184
188
  routing?: ObjectRef
189
+
190
+ @Field(type => GraphQLUpload, { nullable: true })
191
+ thumbnail?: FileUpload
185
192
  }
186
193
 
187
194
  @ObjectType()
@@ -372,6 +379,9 @@ export class ProductPatch {
372
379
  @Field(type => ObjectRef, { nullable: true })
373
380
  routing?: ObjectRef
374
381
 
382
+ @Field(type => GraphQLUpload, { nullable: true })
383
+ thumbnail?: FileUpload
384
+
375
385
  @Field({ nullable: true })
376
386
  cuFlag?: string
377
387
  }