Browse Source

refactor(server): generateVariantsForProduct mutation return Product

Michael Bromley 7 years ago
parent
commit
bef6e5f7bc

+ 2 - 0
admin-ui/src/app/data/providers/data.service.mock.ts

@@ -43,12 +43,14 @@ export class MockDataService implements DataServiceMock {
     product = {
         getProducts: spyQueryResult('getProducts'),
         getProduct: spyQueryResult('getProduct'),
+        createProduct: spyObservable('createProduct'),
         updateProduct: spyObservable('updateProduct'),
         updateProductVariants: spyObservable('updateProductVariants'),
         createProductOptionGroups: spyObservable('createProductOptionGroups'),
         addOptionGroupToProduct: spyObservable('addOptionGroupToProduct'),
         removeOptionGroupFromProduct: spyObservable('removeOptionGroupFromProduct'),
         getProductOptionGroups: spyQueryResult('getProductOptionGroups'),
+        generateProductVariants: spyObservable('generateProductVariants'),
     };
     user = {
         checkLoggedIn: spyObservable('checkLoggedIn'),

File diff suppressed because it is too large
+ 0 - 0
schema.json


+ 1 - 1
server/src/api/product/product.api.graphql

@@ -13,7 +13,7 @@ type Mutation {
     "Remove an OptionGroup from a Product"
     removeOptionGroupFromProduct(productId: ID!, optionGroupId: ID!): Product!
     "Create a set of ProductVariants based on the OptionGroups assigned to the given Product"
-    generateVariantsForProduct(productId: ID!): [ProductVariant!]!
+    generateVariantsForProduct(productId: ID!): Product!
     "Update existing ProductVariants"
     updateProductVariants(input: [UpdateProductVariantInput!]!): [ProductVariant]!
 }

+ 5 - 2
server/src/api/product/product.resolver.ts

@@ -1,6 +1,8 @@
 import { Mutation, Query, Resolver } from '@nestjs/graphql';
 
 import { PaginatedList } from '../../../../shared/shared-types';
+import { DEFAULT_LANGUAGE_CODE } from '../../common/constants';
+import { assertFound } from '../../common/utils';
 import { ProductVariant } from '../../entity/product-variant/product-variant.entity';
 import { Product } from '../../entity/product/product.entity';
 import { Translated } from '../../locale/locale-types';
@@ -57,9 +59,10 @@ export class ProductResolver {
 
     @Mutation()
     @ApplyIdCodec()
-    async generateVariantsForProduct(_, args): Promise<Array<Translated<ProductVariant>>> {
+    async generateVariantsForProduct(_, args): Promise<Translated<Product>> {
         const { productId } = args;
-        return this.productVariantService.generateVariantsForProduct(productId);
+        await this.productVariantService.generateVariantsForProduct(productId);
+        return assertFound(this.productService.findOne(productId, DEFAULT_LANGUAGE_CODE));
     }
 
     @Mutation()

Some files were not shown because too many files changed in this diff