Browse Source

feat(core): Expose `nextStates` on Order type in Admin API

Can be used to query the next available states of the Order state machine
Michael Bromley 5 years ago
parent
commit
ece0bbe869

+ 5 - 0
packages/admin-ui/src/lib/core/src/common/generated-types.ts

@@ -583,6 +583,7 @@ export type CreateShippingMethodInput = {
   description: Scalars['String'];
   checker: ConfigurableOperationInput;
   calculator: ConfigurableOperationInput;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type CreateTaxCategoryInput = {
@@ -1076,6 +1077,7 @@ export type CustomFields = {
   ProductOptionGroup: Array<CustomFieldConfig>;
   ProductVariant: Array<CustomFieldConfig>;
   User: Array<CustomFieldConfig>;
+  ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2441,6 +2443,7 @@ export type NumberRange = {
 
 export type Order = Node & {
    __typename?: 'Order';
+  nextStates: Array<Scalars['String']>;
   id: Scalars['ID'];
   createdAt: Scalars['DateTime'];
   updatedAt: Scalars['DateTime'];
@@ -3385,6 +3388,7 @@ export type ShippingMethod = Node & {
   description: Scalars['String'];
   checker: ConfigurableOperation;
   calculator: ConfigurableOperation;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodFilterParameter = {
@@ -3773,6 +3777,7 @@ export type UpdateShippingMethodInput = {
   description?: Maybe<Scalars['String']>;
   checker?: Maybe<ConfigurableOperationInput>;
   calculator?: Maybe<ConfigurableOperationInput>;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type UpdateTaxCategoryInput = {

+ 1 - 0
packages/admin-ui/src/lib/core/src/data/definitions/order-definitions.ts

@@ -102,6 +102,7 @@ export const ORDER_DETAIL_FRAGMENT = gql`
         updatedAt
         code
         state
+        nextStates
         active
         customer {
             id

+ 5 - 0
packages/asset-server-plugin/e2e/graphql/generated-e2e-asset-server-plugin-types.ts

@@ -582,6 +582,7 @@ export type CreateShippingMethodInput = {
     description: Scalars['String'];
     checker: ConfigurableOperationInput;
     calculator: ConfigurableOperationInput;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type CreateTaxCategoryInput = {
@@ -1071,6 +1072,7 @@ export type CustomFields = {
     ProductOptionGroup: Array<CustomFieldConfig>;
     ProductVariant: Array<CustomFieldConfig>;
     User: Array<CustomFieldConfig>;
+    ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2316,6 +2318,7 @@ export type NumberRange = {
 
 export type Order = Node & {
     __typename?: 'Order';
+    nextStates: Array<Scalars['String']>;
     id: Scalars['ID'];
     createdAt: Scalars['DateTime'];
     updatedAt: Scalars['DateTime'];
@@ -3218,6 +3221,7 @@ export type ShippingMethod = Node & {
     description: Scalars['String'];
     checker: ConfigurableOperation;
     calculator: ConfigurableOperation;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodFilterParameter = {
@@ -3602,6 +3606,7 @@ export type UpdateShippingMethodInput = {
     description?: Maybe<Scalars['String']>;
     checker?: Maybe<ConfigurableOperationInput>;
     calculator?: Maybe<ConfigurableOperationInput>;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type UpdateTaxCategoryInput = {

+ 2 - 0
packages/common/src/generated-shop-types.ts

@@ -757,6 +757,7 @@ export type CustomFields = {
     ProductOptionGroup: Array<CustomFieldConfig>;
     ProductVariant: Array<CustomFieldConfig>;
     User: Array<CustomFieldConfig>;
+    ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2144,6 +2145,7 @@ export type ShippingMethod = Node & {
     description: Scalars['String'];
     checker: ConfigurableOperation;
     calculator: ConfigurableOperation;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodList = PaginatedList & {

+ 5 - 0
packages/common/src/generated-types.ts

@@ -582,6 +582,7 @@ export type CreateShippingMethodInput = {
   description: Scalars['String'];
   checker: ConfigurableOperationInput;
   calculator: ConfigurableOperationInput;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type CreateTaxCategoryInput = {
@@ -1068,6 +1069,7 @@ export type CustomFields = {
   ProductOptionGroup: Array<CustomFieldConfig>;
   ProductVariant: Array<CustomFieldConfig>;
   User: Array<CustomFieldConfig>;
+  ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2401,6 +2403,7 @@ export type NumberRange = {
 
 export type Order = Node & {
    __typename?: 'Order';
+  nextStates: Array<Scalars['String']>;
   id: Scalars['ID'];
   createdAt: Scalars['DateTime'];
   updatedAt: Scalars['DateTime'];
@@ -3342,6 +3345,7 @@ export type ShippingMethod = Node & {
   description: Scalars['String'];
   checker: ConfigurableOperation;
   calculator: ConfigurableOperation;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodFilterParameter = {
@@ -3725,6 +3729,7 @@ export type UpdateShippingMethodInput = {
   description?: Maybe<Scalars['String']>;
   checker?: Maybe<ConfigurableOperationInput>;
   calculator?: Maybe<ConfigurableOperationInput>;
+  customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type UpdateTaxCategoryInput = {

+ 5 - 0
packages/core/e2e/graphql/generated-e2e-admin-types.ts

@@ -582,6 +582,7 @@ export type CreateShippingMethodInput = {
     description: Scalars['String'];
     checker: ConfigurableOperationInput;
     calculator: ConfigurableOperationInput;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type CreateTaxCategoryInput = {
@@ -1071,6 +1072,7 @@ export type CustomFields = {
     ProductOptionGroup: Array<CustomFieldConfig>;
     ProductVariant: Array<CustomFieldConfig>;
     User: Array<CustomFieldConfig>;
+    ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2316,6 +2318,7 @@ export type NumberRange = {
 
 export type Order = Node & {
     __typename?: 'Order';
+    nextStates: Array<Scalars['String']>;
     id: Scalars['ID'];
     createdAt: Scalars['DateTime'];
     updatedAt: Scalars['DateTime'];
@@ -3218,6 +3221,7 @@ export type ShippingMethod = Node & {
     description: Scalars['String'];
     checker: ConfigurableOperation;
     calculator: ConfigurableOperation;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodFilterParameter = {
@@ -3602,6 +3606,7 @@ export type UpdateShippingMethodInput = {
     description?: Maybe<Scalars['String']>;
     checker?: Maybe<ConfigurableOperationInput>;
     calculator?: Maybe<ConfigurableOperationInput>;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type UpdateTaxCategoryInput = {

+ 2 - 0
packages/core/e2e/graphql/generated-e2e-shop-types.ts

@@ -757,6 +757,7 @@ export type CustomFields = {
     ProductOptionGroup: Array<CustomFieldConfig>;
     ProductVariant: Array<CustomFieldConfig>;
     User: Array<CustomFieldConfig>;
+    ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2144,6 +2145,7 @@ export type ShippingMethod = Node & {
     description: Scalars['String'];
     checker: ConfigurableOperation;
     calculator: ConfigurableOperation;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodList = PaginatedList & {

+ 2 - 1
packages/core/src/api/api-internal-modules.ts

@@ -39,7 +39,7 @@ import { CustomerGroupEntityResolver } from './resolvers/entity/customer-group-e
 import { FacetEntityResolver } from './resolvers/entity/facet-entity.resolver';
 import { FacetValueEntityResolver } from './resolvers/entity/facet-value-entity.resolver';
 import { FulfillmentEntityResolver } from './resolvers/entity/fulfillment-entity.resolver';
-import { OrderEntityResolver } from './resolvers/entity/order-entity.resolver';
+import { OrderAdminEntityResolver, OrderEntityResolver } from './resolvers/entity/order-entity.resolver';
 import { OrderLineEntityResolver } from './resolvers/entity/order-line-entity.resolver';
 import { PaymentEntityResolver } from './resolvers/entity/payment-entity.resolver';
 import {
@@ -116,6 +116,7 @@ export const entityResolvers = [
 
 export const adminEntityResolvers = [
     CustomerAdminEntityResolver,
+    OrderAdminEntityResolver,
     ProductVariantAdminEntityResolver,
     ProductAdminEntityResolver,
 ];

+ 10 - 0
packages/core/src/api/resolvers/entity/order-entity.resolver.ts

@@ -61,3 +61,13 @@ export class OrderEntityResolver {
         return this.orderService.getOrderPromotions(order.id);
     }
 }
+
+@Resolver('Order')
+export class OrderAdminEntityResolver {
+    constructor(private orderService: OrderService) {}
+
+    @ResolveField()
+    async nextStates(@Parent() order: Order) {
+        return this.orderService.getNextOrderStates(order);
+    }
+}

+ 4 - 0
packages/core/src/api/schema/admin-api/order.api.graphql

@@ -14,6 +14,10 @@ type Mutation {
     deleteOrderNote(id: ID!): DeletionResponse!
 }
 
+type Order {
+    nextStates: [String!]!
+}
+
 # generated by generateListOptions function
 input OrderListOptions
 

+ 5 - 0
packages/elasticsearch-plugin/e2e/graphql/generated-e2e-elasticsearch-plugin-types.ts

@@ -582,6 +582,7 @@ export type CreateShippingMethodInput = {
     description: Scalars['String'];
     checker: ConfigurableOperationInput;
     calculator: ConfigurableOperationInput;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type CreateTaxCategoryInput = {
@@ -1071,6 +1072,7 @@ export type CustomFields = {
     ProductOptionGroup: Array<CustomFieldConfig>;
     ProductVariant: Array<CustomFieldConfig>;
     User: Array<CustomFieldConfig>;
+    ShippingMethod: Array<CustomFieldConfig>;
 };
 
 export type DateOperators = {
@@ -2316,6 +2318,7 @@ export type NumberRange = {
 
 export type Order = Node & {
     __typename?: 'Order';
+    nextStates: Array<Scalars['String']>;
     id: Scalars['ID'];
     createdAt: Scalars['DateTime'];
     updatedAt: Scalars['DateTime'];
@@ -3218,6 +3221,7 @@ export type ShippingMethod = Node & {
     description: Scalars['String'];
     checker: ConfigurableOperation;
     calculator: ConfigurableOperation;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type ShippingMethodFilterParameter = {
@@ -3602,6 +3606,7 @@ export type UpdateShippingMethodInput = {
     description?: Maybe<Scalars['String']>;
     checker?: Maybe<ConfigurableOperationInput>;
     calculator?: Maybe<ConfigurableOperationInput>;
+    customFields?: Maybe<Scalars['JSON']>;
 };
 
 export type UpdateTaxCategoryInput = {

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


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


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