UNPKG

@fabrix/spool-cart

Version:

Spool - eCommerce Spool for Fabrix

195 lines (194 loc) 6.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@fabrix/fabrix/dist/common"); const errors_1 = require("@fabrix/spool-sequelize/dist/errors"); const Validator = require("../../validator"); class TransactionController extends common_1.FabrixController { generalStats(req, res) { res.json({}); } count(req, res) { const EventsService = this.app.services.EventsService; EventsService.count('Transaction') .then(count => { const counts = { transactions: count }; return res.json(counts); }) .catch(err => { return res.serverError(err); }); } findAll(req, res) { const orm = this.app.models; const Transaction = orm['Transaction']; const limit = Math.max(0, req.query.limit || 10); const offset = Math.max(0, req.query.offset || 0); const sort = req.query.sort || [['created_at', 'DESC']]; const where = req.jsonCriteria(req.query.where); Transaction.findAndCountAll({ order: sort, offset: offset, limit: limit, where: where }) .then(transactions => { res.paginate(transactions.count, limit, offset, sort); return this.app.services.PermissionsService.sanitizeResult(req, transactions.rows); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } findById(req, res) { const orm = this.app.models; const Transaction = orm['Transaction']; let id = req.params.id; if (!id && req.transaction) { id = req.transaction.id; } Transaction.findById(id, {}) .then(transaction => { if (!transaction) { throw new errors_1.ModelError('E_NOT_FOUND', `Transaction id ${id} not found`); } return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } authorize(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.authorize(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.authorize(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } capture(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.capture(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.capture(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } sale(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.sale(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.sale(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } void(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.void(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.void(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } refund(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.refund(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.refund(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } retry(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.retry(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.retry(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } cancel(req, res) { const TransactionService = this.app.services.TransactionService; Validator.validateTransaction.cancel(req.body) .then(values => { req.body.id = req.params.id; return TransactionService.cancel(req.body); }) .then(transaction => { return this.app.services.PermissionsService.sanitizeResult(req, transaction); }) .then(result => { return res.json(result); }) .catch(err => { return res.serverError(err); }); } create(req, res) { } update(req, res) { } destroy(req, res) { } } exports.TransactionController = TransactionController;