UNPKG

@lomray/microservice-payment-stripe

Version:

Stripe payment microservice based on NodeJS & inverted json.

59 lines (55 loc) 2.12 kB
'use strict'; var tslib = require('tslib'); var microserviceHelpers = require('@lomray/microservice-helpers'); var classValidator = require('class-validator'); var businessType = require('../../constants/business-type.js'); require('../../constants/stripe-account-types.js'); var stripe = require('../../services/payment-gateway/stripe.js'); class ConnectAccountInput { } tslib.__decorate([ classValidator.Length(1, 36), classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "userId", void 0); tslib.__decorate([ classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "email", void 0); tslib.__decorate([ classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "accountType", void 0); tslib.__decorate([ classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "refreshUrl", void 0); tslib.__decorate([ classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "returnUrl", void 0); tslib.__decorate([ classValidator.IsEnum(businessType), microserviceHelpers.IsUndefinable(), tslib.__metadata("design:type", String) ], ConnectAccountInput.prototype, "businessType", void 0); class ConnectAccountOutput { } tslib.__decorate([ classValidator.IsString(), tslib.__metadata("design:type", String) ], ConnectAccountOutput.prototype, "accountLink", void 0); /** * Create new connected account */ const connectAccount = microserviceHelpers.Endpoint.custom(() => ({ input: ConnectAccountInput, output: ConnectAccountOutput, description: 'Create new connected account with link', }), ({ userId, email, accountType, refreshUrl, returnUrl, businessType }) => tslib.__awaiter(void 0, void 0, void 0, function* () { const service = yield stripe.init(); return { accountLink: yield service.connectAccount(userId, email, accountType, refreshUrl, returnUrl, businessType), }; })); module.exports = connectAccount;