@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
195 lines (194 loc) • 6.59 kB
JavaScript
"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;