From 3ab5227ccc49f8c20363b9856e86377dc66480e1 Mon Sep 17 00:00:00 2001 From: Pavel Brui Date: Tue, 12 Mar 2024 11:50:55 +0100 Subject: [PATCH] addCreatePayoutForConnectedAccountToStripe --- package-lock.json | 13 +++++++------ packages/integrations/gei-stripe/package.json | 4 ++-- .../Mutation/createPayoutForConnectedAccount.ts | 17 +++++++++-------- packages/integrations/gei-stripe/src/index.ts | 6 ++++++ packages/integrations/gei-stripe/stucco.json | 7 +++++++ 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8a393c..729c772 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10847,7 +10847,8 @@ }, "node_modules/stripe": { "version": "11.18.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-11.18.0.tgz", + "integrity": "sha512-OUA32uhNoSoM6wOodyFbV+3IBCoO140uzdXmBArQ0S88D4EbH91xl2v+Ml1sKalcFKUBadHLeHfU/p9AbsOfGw==", "dependencies": { "@types/node": ">=8.1.0", "qs": "^6.11.0" @@ -11907,7 +11908,7 @@ } }, "packages/integrations/gei-bookings": { - "version": "0.1.0", + "version": "0.1.1", "license": "ISC", "dependencies": { "dotenv": "^16.0.3", @@ -11978,11 +11979,11 @@ } }, "packages/integrations/gei-crud": { - "version": "0.9.1", + "version": "0.9.2", "license": "ISC", "dependencies": { "googleapis": "^128.0.0", - "graphql-editor-cli": "^0.9.0", + "graphql-editor-cli": "^0.9.1", "i-graphql": "^0.1.2", "jsonwebtoken": "^8.5.1", "jwt-decode": "^4.0.0", @@ -12622,7 +12623,7 @@ } }, "packages/integrations/gei-stripe": { - "version": "0.4.8", + "version": "0.4.9", "license": "ISC", "dependencies": { "@azure/functions": "^3.5.0", @@ -12639,7 +12640,7 @@ "mailgun.js": "^8.0.6", "mongodb": "^5.1.0", "node-fetch": "^3.3.0", - "stripe": "^11.4.0", + "stripe": "^11.18.0", "stucco-js": "^0.10.18", "ws": "^8.12.0" } diff --git a/packages/integrations/gei-stripe/package.json b/packages/integrations/gei-stripe/package.json index 2fb8938..a1fc0de 100644 --- a/packages/integrations/gei-stripe/package.json +++ b/packages/integrations/gei-stripe/package.json @@ -1,6 +1,6 @@ { "name": "gei-stripe", - "version": "0.4.8", + "version": "0.4.9", "description": "Automatically generated by graphql-editor-cli", "main": "lib/index.js", "scripts": { @@ -30,7 +30,7 @@ "mailgun.js": "^8.0.6", "mongodb": "^5.1.0", "node-fetch": "^3.3.0", - "stripe": "^11.4.0", + "stripe": "^11.18.0", "stucco-js": "^0.10.18", "ws": "^8.12.0" } diff --git a/packages/integrations/gei-stripe/src/Mutation/createPayoutForConnectedAccount.ts b/packages/integrations/gei-stripe/src/Mutation/createPayoutForConnectedAccount.ts index ae8301f..2d104f9 100644 --- a/packages/integrations/gei-stripe/src/Mutation/createPayoutForConnectedAccount.ts +++ b/packages/integrations/gei-stripe/src/Mutation/createPayoutForConnectedAccount.ts @@ -1,21 +1,21 @@ -import Stripe from 'stripe'; +import { newStripe } from "../utils/stripeInit.js"; import { resolverFor } from '../zeus/index.js'; import { FieldResolveInput } from 'stucco-js'; -const stripe = new Stripe('YOUR_STRIPE_SECRET_KEY', { - apiVersion: '2020-08-27', -}); + export const createPayoutForConnectedAccount = async (input: FieldResolveInput) => resolverFor( 'Mutation', 'createPayoutForConnectedAccount', - async ({ payload: { accountId, amount, currency} }) => { + async ({ payload: { accountId, amount, currency } }) => { try { - const payout = await stripe.payouts.create({ + const stripe_account = process.env.STRIPE_ACCOUNT_ID || accountId + if (!stripe_account) throw new Error('missing accountId'); + const payout = await newStripe().payouts.create({ amount, currency, - stripe_account: accountId, + destination: stripe_account, }); if (payout) { @@ -26,7 +26,8 @@ export const createPayoutForConnectedAccount = async (input: FieldResolveInput) } catch (error) { throw new Error('Error creating payout:' + JSON.stringify(error)); } - })(input.arguments, input.source) +export default createPayoutForConnectedAccount; + diff --git a/packages/integrations/gei-stripe/src/index.ts b/packages/integrations/gei-stripe/src/index.ts index 1f9d7db..21ceb00 100644 --- a/packages/integrations/gei-stripe/src/index.ts +++ b/packages/integrations/gei-stripe/src/index.ts @@ -4,6 +4,7 @@ import webhookHandler from './Mutation/webhook.js'; import createCustomerPortalHandler from './Mutation/createCustomerPortal.js'; import createCheckoutSessionHandler from './Mutation/createCheckoutSession.js'; import createNewUserCheckoutSessionHandler from './Mutation/createNewUserCheckoutSession.js'; +import createPayoutForConnectedAccountHandler from './Mutation/createPayoutForConnectedAccount.js'; import productsHandler from './Query/products.js'; import productDefaultPriceHandler from './Product/default_price.js'; import productPricesHandler from './Product/prices.js'; @@ -76,6 +77,11 @@ export const integration = NewIntegration({ description: 'Creates payment session for user that is not yet registered', handler: createNewUserCheckoutSessionHandler, }, + createPayoutForConnectedAccount: { + name: 'createPayoutForConnectedAccount', + description: 'Creates payout for one payment to connection account', + handler: createPayoutForConnectedAccountHandler, + }, setDefaultPaymentMethod: { name: 'setDefaultPaymentMethod', description: 'Sets default user payment method', diff --git a/packages/integrations/gei-stripe/stucco.json b/packages/integrations/gei-stripe/stucco.json index 2d02c62..2667720 100644 --- a/packages/integrations/gei-stripe/stucco.json +++ b/packages/integrations/gei-stripe/stucco.json @@ -63,6 +63,13 @@ "name": "Mutation.createConnectAccount.handler" } }, + "Mutation.createPayoutForConnectedAccount": { + "name": "createPayoutForConnectedAccount", + "description": "Creates payout for one payment to connection account", + "resolve": { + "name": "Mutation.createPayoutForConnectedAccount.handler" + } + }, "Product.default_price": { "name": "default_price", "description": "Resolver for querying default price object",