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