UNPKG

@lomray/microservice-payment-stripe

Version:

Stripe payment microservice based on NodeJS & inverted json.

49 lines (45 loc) 2.03 kB
'use strict'; var tslib = require('tslib'); var microserviceNodejsLib = require('@lomray/microservice-nodejs-lib'); var messages = require('../../helpers/validators/messages.js'); var customer = require('../../repositories/customer.js'); /** * Account webhook handlers */ class Account { /** * @constructor */ constructor(manager) { this.manager = manager; this.customerRepository = manager.getCustomRepository(customer); } /** * Handles customer update * @description Connect account event */ handleAccountUpdated(event) { return tslib.__awaiter(this, void 0, void 0, function* () { /* eslint-disable camelcase */ const { id, payouts_enabled: isPayoutEnabled, charges_enabled: isChargesEnabled, capabilities, business_profile, } = event.data.object; const customer$1 = yield customer.getCustomerByAccountId(id, this.manager); if (!customer$1) { throw new microserviceNodejsLib.BaseException({ status: 404, message: messages.getNotFoundMessage('Customer'), }); } /** * Check if customer can accept payment * @description Check if user correctly and verify setup connect account */ customer$1.params.isPayoutEnabled = isPayoutEnabled; customer$1.params.transferCapabilityStatus = (capabilities === null || capabilities === void 0 ? void 0 : capabilities.transfers) || 'inactive'; customer$1.params.isVerified = isChargesEnabled && (capabilities === null || capabilities === void 0 ? void 0 : capabilities.transfers) === 'active'; customer$1.params.accountSupportPhoneNumber = business_profile === null || business_profile === void 0 ? void 0 : business_profile.support_phone; yield this.customerRepository.save(customer$1); /* eslint-enable camelcase */ }); } } module.exports = Account;