saleor-apps-redis_apl/apps/invoice-hub/src/modules/invoice-create-notifier/invoice-create-notifier.ts
Lukasz Ostrowski 1a6d39e2be add apps
2023-01-20 17:08:35 +01:00

44 lines
1 KiB
TypeScript

import { Client, gql } from "urql";
import { InvoiceCreateDocument } from "../../../generated/graphql";
import { logger } from "../../lib/logger";
gql`
mutation InvoiceCreate($orderId: ID!, $invoiceInput: InvoiceCreateInput!) {
invoiceCreate(input: $invoiceInput, orderId: $orderId) {
errors {
message
}
invoice {
id
}
}
}
`;
export class InvoiceCreateNotifier {
constructor(private client: Client) {}
notifyInvoiceCreated(orderId: string, invoiceNumber: string, invoiceUrl: string) {
logger.info(
{ orderId, invoiceNumber, invoiceUrl },
"Will notify Saleor with invoiceCreate mutation"
);
return this.client
.mutation(InvoiceCreateDocument, {
orderId,
invoiceInput: {
url: invoiceUrl,
number: invoiceNumber,
},
})
.toPromise()
.then((result) => {
logger.info(result.data, "invoiceCreate finished");
if (result.error) {
throw new Error(result.error.message);
}
});
}
}