Merge branch 'master' into 104-focus-point-mutation
This commit is contained in:
@@ -3,7 +3,7 @@ import {
|
|||||||
InteriorsFilter,
|
InteriorsFilter,
|
||||||
InteriorType,
|
InteriorType,
|
||||||
} from '../types/interior-types';
|
} from '../types/interior-types';
|
||||||
import { Orientation, ProductGroup } from '../types/product-types';
|
import { Orientation } from '../types/product-types';
|
||||||
import { Maybe } from '../types/types';
|
import { Maybe } from '../types/types';
|
||||||
import { BaseSQLDataSource } from './BaseSQLDataSource';
|
import { BaseSQLDataSource } from './BaseSQLDataSource';
|
||||||
import { ImageServerApi } from './imageserver-api';
|
import { ImageServerApi } from './imageserver-api';
|
||||||
@@ -18,22 +18,18 @@ export class InteriorAPI extends BaseSQLDataSource {
|
|||||||
this.imageServerApi = imageServerApi;
|
this.imageServerApi = imageServerApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
getInteriorType(productGroup: ProductGroup): string {
|
getInteriorType(roomTypePart: string): string {
|
||||||
switch (productGroup) {
|
switch (roomTypePart) {
|
||||||
case ProductGroup.DESIGNER_WALLPAPER:
|
case 'wallpaper':
|
||||||
case ProductGroup.WALLPAPER:
|
|
||||||
case ProductGroup.PHOTO_WALLPAPER:
|
|
||||||
return InteriorType[InteriorType.WALLPAPER];
|
return InteriorType[InteriorType.WALLPAPER];
|
||||||
case ProductGroup.CANVAS:
|
case 'painting':
|
||||||
return InteriorType[InteriorType.PAINTING];
|
return InteriorType[InteriorType.PAINTING];
|
||||||
case ProductGroup.POSTER:
|
case 'poster':
|
||||||
return InteriorType[InteriorType.POSTER];
|
return InteriorType[InteriorType.POSTER];
|
||||||
case ProductGroup.FRAMED_PRINT:
|
case 'framed-print':
|
||||||
return InteriorType[InteriorType.FRAMED_PRINT];
|
return InteriorType[InteriorType.FRAMED_PRINT];
|
||||||
default:
|
default:
|
||||||
throw new Error(
|
throw new Error(`Unknown room type: ${roomTypePart}`);
|
||||||
`Could not define interior type from product group [${productGroup}]`,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,12 +51,13 @@ export class InteriorAPI extends BaseSQLDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
decorateRow(row: any): Interior {
|
decorateRow(row: any): Interior {
|
||||||
|
console.log('row', row);
|
||||||
if (row.roomName) {
|
if (row.roomName) {
|
||||||
const parts = row.roomName.split('_');
|
const parts = row.roomName.split('_');
|
||||||
row.roomNumber = this.getInteriorRoomNumber(parts[0]);
|
row.roomNumber = this.getInteriorRoomNumber(parts[0]);
|
||||||
|
row.type = this.getInteriorType(parts[1]);
|
||||||
row.orientation = this.getInteriorOrientation(parts[2]);
|
row.orientation = this.getInteriorOrientation(parts[2]);
|
||||||
}
|
}
|
||||||
row.type = this.getInteriorType(row.productGroup);
|
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,6 +75,7 @@ export class InteriorAPI extends BaseSQLDataSource {
|
|||||||
...row,
|
...row,
|
||||||
roomName: row.name,
|
roomName: row.name,
|
||||||
roomType: row.roomtype,
|
roomType: row.roomtype,
|
||||||
|
id: row.s3_suffix,
|
||||||
};
|
};
|
||||||
this.decorateRow(res);
|
this.decorateRow(res);
|
||||||
return res;
|
return res;
|
||||||
@@ -118,7 +116,7 @@ export class InteriorAPI extends BaseSQLDataSource {
|
|||||||
return rows.map((row) => {
|
return rows.map((row) => {
|
||||||
const res = {
|
const res = {
|
||||||
...row,
|
...row,
|
||||||
id: row.interiorId,
|
id: row.uri,
|
||||||
};
|
};
|
||||||
this.decorateRow(res);
|
this.decorateRow(res);
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
@@ -104,6 +104,8 @@ export class ProductAPI extends BaseSQLDataSource {
|
|||||||
row.fields = this.getProductFields(row);
|
row.fields = this.getProductFields(row);
|
||||||
row.designerId = row.designerid;
|
row.designerId = row.designerid;
|
||||||
row.orientation = this.getOrientation(row.fields);
|
row.orientation = this.getOrientation(row.fields);
|
||||||
|
row.copyright = row.copyright ?? '';
|
||||||
|
row.batch = row.batch ?? '';
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,10 +172,11 @@ export class ProductAPI extends BaseSQLDataSource {
|
|||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
return this.knex.raw(
|
return this.knex.raw(
|
||||||
/* sql */ `
|
/* sql */ `
|
||||||
UPDATE "product-products_fields" SET value = ?
|
INSERT INTO "product-products_fields" (productid, fieldid, value, inserted, updated)
|
||||||
WHERE productid = ?
|
VALUES (?, (SELECT fieldid FROM "product-fields" WHERE field = ?), ?, now(), now())
|
||||||
AND fieldid = (SELECT fieldid FROM "product-fields" WHERE field = ?)`,
|
ON CONFLICT (productid, fieldid)
|
||||||
[value, productId, field],
|
DO UPDATE SET "value" = ?`,
|
||||||
|
[productId, field, value, value],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +192,7 @@ export class ProductAPI extends BaseSQLDataSource {
|
|||||||
path: info.path,
|
path: info.path,
|
||||||
browsable: info.browsable ? 1 : 0,
|
browsable: info.browsable ? 1 : 0,
|
||||||
visible: info.visible ? 1 : 0,
|
visible: info.visible ? 1 : 0,
|
||||||
designerid: info.designerId,
|
designerid: info.designerId ?? null,
|
||||||
ref1: info.ref1,
|
ref1: info.ref1,
|
||||||
ref2: info.ref2,
|
ref2: info.ref2,
|
||||||
ref3: info.ref3,
|
ref3: info.ref3,
|
||||||
@@ -199,6 +202,21 @@ export class ProductAPI extends BaseSQLDataSource {
|
|||||||
this.updateProductField(productId, 'name', info.name),
|
this.updateProductField(productId, 'name', info.name),
|
||||||
this.updateProductField(productId, 'batch', info.batch),
|
this.updateProductField(productId, 'batch', info.batch),
|
||||||
this.updateProductField(productId, 'copyright', info.copyright),
|
this.updateProductField(productId, 'copyright', info.copyright),
|
||||||
|
this.updateProductField(
|
||||||
|
productId,
|
||||||
|
'print_file_width',
|
||||||
|
info.printFileWidth.toString(),
|
||||||
|
),
|
||||||
|
this.updateProductField(
|
||||||
|
productId,
|
||||||
|
'print_file_height',
|
||||||
|
info.printFileHeight.toString(),
|
||||||
|
),
|
||||||
|
this.updateProductField(
|
||||||
|
productId,
|
||||||
|
'print_file_dpi',
|
||||||
|
info.printFileDpi.toString(),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
return Promise.all(promises);
|
return Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -262,7 +262,7 @@ type ProductFields {
|
|||||||
photowallResolution: Int
|
photowallResolution: Int
|
||||||
canvasResolution: Int
|
canvasResolution: Int
|
||||||
wallpaperResolution: Int
|
wallpaperResolution: Int
|
||||||
copyright: String
|
copyright: String!
|
||||||
proportionsWarning: String
|
proportionsWarning: String
|
||||||
marginWidthMax: Int
|
marginWidthMax: Int
|
||||||
marginWidthMin: Int
|
marginWidthMin: Int
|
||||||
@@ -272,7 +272,7 @@ type ProductFields {
|
|||||||
focusYpoint: Float
|
focusYpoint: Float
|
||||||
focusXpoint2: Float
|
focusXpoint2: Float
|
||||||
focusYpoint2: Float
|
focusYpoint2: Float
|
||||||
batch: String
|
batch: String!
|
||||||
imageResolution: Int
|
imageResolution: Int
|
||||||
printFileWidth: Int
|
printFileWidth: Int
|
||||||
printFileHeight: Int
|
printFileHeight: Int
|
||||||
@@ -383,9 +383,12 @@ input ProductInfoInput {
|
|||||||
ref1: String!
|
ref1: String!
|
||||||
ref2: String!
|
ref2: String!
|
||||||
ref3: String!
|
ref3: String!
|
||||||
designerId: Int!
|
designerId: Int
|
||||||
browsable: Boolean!
|
browsable: Boolean!
|
||||||
visible: Boolean!
|
visible: Boolean!
|
||||||
|
printFileWidth: Int!
|
||||||
|
printFileHeight: Int!
|
||||||
|
printFileDpi: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
input ProductBlacklistingInput {
|
input ProductBlacklistingInput {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { PaginationInput, PaginationResult } from './types';
|
import { Maybe, PaginationInput, PaginationResult } from './types';
|
||||||
|
|
||||||
// Mutation inputs
|
// Mutation inputs
|
||||||
export interface ProductInfoInput {
|
export interface ProductInfoInput {
|
||||||
@@ -10,9 +10,12 @@ export interface ProductInfoInput {
|
|||||||
ref1: string;
|
ref1: string;
|
||||||
ref2: string;
|
ref2: string;
|
||||||
ref3: string;
|
ref3: string;
|
||||||
designerId: number;
|
designerId: Maybe<number>;
|
||||||
browsable: boolean;
|
browsable: boolean;
|
||||||
visible: boolean;
|
visible: boolean;
|
||||||
|
printFileWidth: number;
|
||||||
|
printFileHeight: number;
|
||||||
|
printFileDpi: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ProductBlacklistMarketInput {
|
export interface ProductBlacklistMarketInput {
|
||||||
|
|||||||
Reference in New Issue
Block a user