@shopify/shopify-api
Version:
Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks
1 lines • 4.39 kB
Source Map (JSON)
{"version":3,"file":"update-usage-subscription-capped-amount.mjs","sources":["../../../../../../lib/billing/update-usage-subscription-capped-amount.ts"],"sourcesContent":["import {BillingError, GraphqlQueryError} from '../error';\nimport {ConfigInterface} from '../base-types';\nimport {graphqlClientClass} from '../clients/admin';\n\nimport {\n BillingUpdateUsageCappedAmount,\n BillingUpdateUsageCappedAmountParams,\n BillingUpdateUsageCappedAmountResponse,\n UpdateCappedAmountConfirmation,\n APP_SUBSCRIPTION_FRAGMENT,\n} from './types';\nimport {convertLineItems} from './utils';\n\nconst UPDATE_USAGE_CAPPED_AMOUNT_MUTATION = `\n${APP_SUBSCRIPTION_FRAGMENT}\nmutation appSubscriptionLineItemUpdate($cappedAmount: MoneyInput!, $id: ID!) {\n appSubscriptionLineItemUpdate(cappedAmount: $cappedAmount, id: $id) {\n userErrors {\n field\n message\n }\n confirmationUrl\n appSubscription {\n ...AppSubscriptionFragment\n }\n }\n}\n`;\n\nexport function updateUsageCappedAmount(\n config: ConfigInterface,\n): BillingUpdateUsageCappedAmount {\n return async function updateUsageCappedAmount(\n params: BillingUpdateUsageCappedAmountParams,\n ): Promise<UpdateCappedAmountConfirmation> {\n if (!config.billing) {\n throw new BillingError({\n message: 'Attempted to update line item without billing configs',\n errorData: [],\n });\n }\n\n const {\n session,\n subscriptionLineItemId,\n cappedAmount: {amount, currencyCode},\n } = params;\n\n const GraphqlClient = graphqlClientClass({config});\n const client = new GraphqlClient({session});\n\n try {\n const response =\n await client.request<BillingUpdateUsageCappedAmountResponse>(\n UPDATE_USAGE_CAPPED_AMOUNT_MUTATION,\n {\n variables: {\n id: subscriptionLineItemId,\n cappedAmount: {\n amount,\n currencyCode,\n },\n },\n },\n );\n\n if (response.data?.appSubscriptionLineItemUpdate?.userErrors.length) {\n throw new BillingError({\n message: 'Error while updating usage subscription capped amount',\n errorData: response.data?.appSubscriptionLineItemUpdate?.userErrors,\n });\n }\n\n const appSubscription =\n response.data?.appSubscriptionLineItemUpdate?.appSubscription!;\n if (appSubscription && appSubscription.lineItems) {\n appSubscription.lineItems = convertLineItems(appSubscription.lineItems);\n }\n\n return {\n confirmationUrl:\n response.data?.appSubscriptionLineItemUpdate?.confirmationUrl!,\n appSubscription,\n };\n } catch (error) {\n if (error instanceof GraphqlQueryError) {\n throw new BillingError({\n message: error.message,\n errorData: error.response?.errors,\n });\n }\n\n throw error;\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAaA,MAAM,mCAAmC,GAAG;EAC1C,yBAAyB;;;;;;;;;;;;;CAa1B;AAEK,SAAU,uBAAuB,CACrC,MAAuB,EAAA;AAEvB,IAAA,OAAO,eAAe,uBAAuB,CAC3C,MAA4C,EAAA;AAE5C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,YAAY,CAAC;AACrB,gBAAA,OAAO,EAAE,uDAAuD;AAChE,gBAAA,SAAS,EAAE,EAAE;AACd,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,EACJ,OAAO,EACP,sBAAsB,EACtB,YAAY,EAAE,EAAC,MAAM,EAAE,YAAY,EAAC,GACrC,GAAG,MAAM;QAEV,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAC,MAAM,EAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAC,OAAO,EAAC,CAAC;AAE3C,QAAA,IAAI;YACF,MAAM,QAAQ,GACZ,MAAM,MAAM,CAAC,OAAO,CAClB,mCAAmC,EACnC;AACE,gBAAA,SAAS,EAAE;AACT,oBAAA,EAAE,EAAE,sBAAsB;AAC1B,oBAAA,YAAY,EAAE;wBACZ,MAAM;wBACN,YAAY;AACb,qBAAA;AACF,iBAAA;AACF,aAAA,CACF;YAEH,IAAI,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,UAAU,CAAC,MAAM,EAAE;gBACnE,MAAM,IAAI,YAAY,CAAC;AACrB,oBAAA,OAAO,EAAE,uDAAuD;AAChE,oBAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,UAAU;AACpE,iBAAA,CAAC;YACJ;YAEA,MAAM,eAAe,GACnB,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;AAChE,YAAA,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,EAAE;gBAChD,eAAe,CAAC,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC;YACzE;YAEA,OAAO;AACL,gBAAA,eAAe,EACb,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;gBAChE,eAAe;aAChB;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;gBACtC,MAAM,IAAI,YAAY,CAAC;oBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;AAClC,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC;AACH;;;;"}