@lomray/microservice-payment-stripe
Version:
Stripe payment microservice based on NodeJS & inverted json.
59 lines (55 loc) • 2.12 kB
JavaScript
;
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;