Browse Source

feat(core): Implement `setOrderCustomFields` in Admin API

Relates to #404
Michael Bromley 5 years ago
parent
commit
ad89fc938e

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

@@ -1863,6 +1863,7 @@ export type Mutation = {
     updateOrderNote: HistoryEntry;
     deleteOrderNote: DeletionResponse;
     transitionOrderToState?: Maybe<Order>;
+    setOrderCustomFields?: Maybe<Order>;
     /** Update an existing PaymentMethod */
     updatePaymentMethod: PaymentMethod;
     /** Create a new ProductOptionGroup */
@@ -2155,6 +2156,10 @@ export type MutationTransitionOrderToStateArgs = {
     state: Scalars['String'];
 };
 
+export type MutationSetOrderCustomFieldsArgs = {
+    input: UpdateOrderInput;
+};
+
 export type MutationUpdatePaymentMethodArgs = {
     input: UpdatePaymentMethodInput;
 };
@@ -3541,6 +3546,11 @@ export type UpdateGlobalSettingsInput = {
     customFields?: Maybe<Scalars['JSON']>;
 };
 
+export type UpdateOrderInput = {
+    id: Scalars['ID'];
+    customFields?: Maybe<Scalars['JSON']>;
+};
+
 export type UpdateOrderNoteInput = {
     noteId: Scalars['ID'];
     note?: Maybe<Scalars['String']>;

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

@@ -1862,6 +1862,7 @@ export type Mutation = {
   updateOrderNote: HistoryEntry;
   deleteOrderNote: DeletionResponse;
   transitionOrderToState?: Maybe<Order>;
+  setOrderCustomFields?: Maybe<Order>;
   /** Update an existing PaymentMethod */
   updatePaymentMethod: PaymentMethod;
   /** Create a new ProductOptionGroup */
@@ -2207,6 +2208,11 @@ export type MutationTransitionOrderToStateArgs = {
 };
 
 
+export type MutationSetOrderCustomFieldsArgs = {
+  input: UpdateOrderInput;
+};
+
+
 export type MutationUpdatePaymentMethodArgs = {
   input: UpdatePaymentMethodInput;
 };
@@ -3665,6 +3671,11 @@ export type UpdateGlobalSettingsInput = {
   customFields?: Maybe<Scalars['JSON']>;
 };
 
+export type UpdateOrderInput = {
+  id: Scalars['ID'];
+  customFields?: Maybe<Scalars['JSON']>;
+};
+
 export type UpdateOrderNoteInput = {
   noteId: Scalars['ID'];
   note?: Maybe<Scalars['String']>;

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

@@ -1863,6 +1863,7 @@ export type Mutation = {
     updateOrderNote: HistoryEntry;
     deleteOrderNote: DeletionResponse;
     transitionOrderToState?: Maybe<Order>;
+    setOrderCustomFields?: Maybe<Order>;
     /** Update an existing PaymentMethod */
     updatePaymentMethod: PaymentMethod;
     /** Create a new ProductOptionGroup */
@@ -2155,6 +2156,10 @@ export type MutationTransitionOrderToStateArgs = {
     state: Scalars['String'];
 };
 
+export type MutationSetOrderCustomFieldsArgs = {
+    input: UpdateOrderInput;
+};
+
 export type MutationUpdatePaymentMethodArgs = {
     input: UpdatePaymentMethodInput;
 };
@@ -3541,6 +3546,11 @@ export type UpdateGlobalSettingsInput = {
     customFields?: Maybe<Scalars['JSON']>;
 };
 
+export type UpdateOrderInput = {
+    id: Scalars['ID'];
+    customFields?: Maybe<Scalars['JSON']>;
+};
+
 export type UpdateOrderNoteInput = {
     noteId: Scalars['ID'];
     note?: Maybe<Scalars['String']>;

+ 7 - 0
packages/core/src/api/resolvers/admin/order.resolver.ts

@@ -5,6 +5,7 @@ import {
     MutationDeleteOrderNoteArgs,
     MutationFulfillOrderArgs,
     MutationRefundOrderArgs,
+    MutationSetOrderCustomFieldsArgs,
     MutationSettlePaymentArgs,
     MutationSettleRefundArgs,
     MutationTransitionOrderToStateArgs,
@@ -87,6 +88,12 @@ export class OrderResolver {
         return this.orderService.deleteOrderNote(ctx, args.id);
     }
 
+    @Mutation()
+    @Allow(Permission.UpdateOrder)
+    async setOrderCustomFields(@Ctx() ctx: RequestContext, @Args() args: MutationSetOrderCustomFieldsArgs) {
+        return this.orderService.updateCustomFields(ctx, args.input.id, args.input.customFields);
+    }
+
     @Mutation()
     @Allow(Permission.UpdateOrder)
     async transitionOrderToState(

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

@@ -13,6 +13,7 @@ type Mutation {
     updateOrderNote(input: UpdateOrderNoteInput!): HistoryEntry!
     deleteOrderNote(id: ID!): DeletionResponse!
     transitionOrderToState(id: ID!, state: String!): Order
+    setOrderCustomFields(input: UpdateOrderInput!): Order
 }
 
 type Order {
@@ -22,6 +23,11 @@ type Order {
 # generated by generateListOptions function
 input OrderListOptions
 
+# Populated with any custom fields at run-time
+input UpdateOrderInput {
+    id: ID!
+}
+
 input FulfillOrderInput {
     lines: [OrderLineInput!]!
     method: String!

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

@@ -1863,6 +1863,7 @@ export type Mutation = {
     updateOrderNote: HistoryEntry;
     deleteOrderNote: DeletionResponse;
     transitionOrderToState?: Maybe<Order>;
+    setOrderCustomFields?: Maybe<Order>;
     /** Update an existing PaymentMethod */
     updatePaymentMethod: PaymentMethod;
     /** Create a new ProductOptionGroup */
@@ -2155,6 +2156,10 @@ export type MutationTransitionOrderToStateArgs = {
     state: Scalars['String'];
 };
 
+export type MutationSetOrderCustomFieldsArgs = {
+    input: UpdateOrderInput;
+};
+
 export type MutationUpdatePaymentMethodArgs = {
     input: UpdatePaymentMethodInput;
 };
@@ -3541,6 +3546,11 @@ export type UpdateGlobalSettingsInput = {
     customFields?: Maybe<Scalars['JSON']>;
 };
 
+export type UpdateOrderInput = {
+    id: Scalars['ID'];
+    customFields?: Maybe<Scalars['JSON']>;
+};
+
 export type UpdateOrderNoteInput = {
     noteId: Scalars['ID'];
     note?: Maybe<Scalars['String']>;

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


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