From 596d21dce8f6e4f4d06af8317b93b979fcf33f4b Mon Sep 17 00:00:00 2001 From: Niklas Fondberg Date: Fri, 3 Sep 2021 09:51:49 +0200 Subject: [PATCH] Add keyword mutation for product (#19) --- src/datasources/keyword-api.ts | 28 +++++++++++++++++++--------- src/resolvers/products-resolver.ts | 7 +++++++ src/schema.graphql | 7 +++++++ 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/datasources/keyword-api.ts b/src/datasources/keyword-api.ts index 003c87f..ff58977 100644 --- a/src/datasources/keyword-api.ts +++ b/src/datasources/keyword-api.ts @@ -55,18 +55,28 @@ ORDER BY keywords.value .then((row) => this.getType(row)); } - /** - * category keywords - * + async setProductKeywords( + productId: number, + keywordIds: Array, + ): Promise { + await this.knex('product_keyword').where('product_id', productId).del(); + + const fieldsToInsert = keywordIds.map((keywordId) => ({ + product_id: productId, + keyword_id: keywordId, + })); + + return this.knex('product_keyword').insert(fieldsToInsert); + } +} + +/* +category keywords: SELECT category_keyword.category_id, keywords.value FROM category_keyword JOIN keywords ON category_keyword.keyword_id = keywords.id; - +texts: FROM categorydata cd JOIN categorydatakeys cdk ON cd.datakey_id = cdk.id - - -* - */ -} +*/ diff --git a/src/resolvers/products-resolver.ts b/src/resolvers/products-resolver.ts index 858f4aa..a61c40b 100644 --- a/src/resolvers/products-resolver.ts +++ b/src/resolvers/products-resolver.ts @@ -94,4 +94,11 @@ export const productMutationTypeDefs = { ); return (dataSources.productApi).getProduct(productId); }, + async productKeywords(_, { productId, keywordIds }, { dataSources }) { + await (dataSources.keywordApi).setProductKeywords( + productId, + keywordIds, + ); + return (dataSources.productApi).getProduct(productId); + }, }; diff --git a/src/schema.graphql b/src/schema.graphql index 9695430..9c40982 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -289,9 +289,15 @@ enum Orientation { enum ProductGroup { PHOTO_WALLPAPER CANVAS + """ + WALLPAPER is tiling + """ WALLPAPER OLD_REMOVED DO_IT_YOURSELF_FRAME + """ + Not used + """ DESIGNER_WALLPAPER POSTER FRAMED_PRINT @@ -396,4 +402,5 @@ type Mutation { productId: Int! markets: [ProductBlacklistingInput] ): Product + productKeywords(productId: Int!, keywordIds: [Int]): Product }