@lomray/microservice-payment-stripe
Version:
Stripe payment microservice based on NodeJS & inverted json.
54 lines (50 loc) • 1.97 kB
JavaScript
;
var tslib = require('tslib');
var typeorm = require('typeorm');
var card = require('../entities/card.js');
var Card_1;
let Card = Card_1 = class Card extends typeorm.Repository {
/**
* Returns card by card id
* @description Uses to search related connect account (external account) data
*/
static getCardById(cardId, manager) {
return manager
.getRepository(card)
.createQueryBuilder('card')
.where("card.params ->> 'cardId' = :cardId", { cardId })
.getOne();
}
/**
* Returns extracted payment method from card
* @description Support old payment method storage in params
*/
static extractPaymentMethodId({ paymentMethodId, params }) {
return paymentMethodId || params.paymentMethodId || null;
}
/**
* Returns card presentation by fingerprint
*/
static getCardDataByFingerprint({ userId, fingerprint, shouldExpandCard = false, manager = typeorm.getManager(), }) {
return tslib.__awaiter(this, void 0, void 0, function* () {
const notExistResult = { isExist: false };
if (!fingerprint) {
return notExistResult;
}
const repository = manager.getRepository(card);
const card$1 = yield repository.findOne(Object.assign(Object.assign({}, (shouldExpandCard ? {} : { select: ['id', 'userId', 'paymentMethodId', 'params'] })), { where: {
fingerprint,
userId,
} }));
if (card$1) {
return Object.assign({ isExist: true, type: Card_1.extractPaymentMethodId(card$1) ? 'paymentMethod' : 'externalAccount' }, (shouldExpandCard ? { entity: card$1 } : {}));
}
return notExistResult;
});
}
};
Card = Card_1 = tslib.__decorate([
typeorm.EntityRepository(card)
], Card);
var CardRepository = Card;
module.exports = CardRepository;