'use strict';
const BaseService = require('../common/BaseService');
const TransactionEntity = require('./TransactionEntity');
const TransactionRepository = require('./TransactionRepository');
/**
* @module Transactions Domain
* @fileoverview TransactionService - Service for managing transactions business logic.
* @class TransactionService
*/
class TransactionService extends BaseService {
constructor({
repository = new TransactionRepository({
DB: require('@vectoricons.net/db'),
}),
entityClass = TransactionEntity,
transactionItemService,
transactionCategoryService,
couponCodeService,
} = {}) {
super({ repository, entityClass });
this.transactionItemService = transactionItemService;
this.transactionCategoryService = transactionCategoryService;
this.couponCodeService = couponCodeService;
}
getPaymentTypes() {
return this.repository.getPaymentTypes();
}
getTransactionTypes() {
return this.repository.getTransactionTypes();
}
getTransactionCategories() {
return this.repository.getTransactionCategories();
}
getTransactionHistoryByTransactionId(transactionId) {
return this.repository.getTransactionDataByTransactionId(transactionId);
}
getTransactionHistoryByOrderId(orderId) {
return this.repository.getTransactionHistoryByOrderId(orderId);
}
getTransactionHistoryByCartId(cartId) {
return this.repository.getTransactionHistoryByCartId(cartId);
}
}
module.exports = TransactionService;
Source