@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
366 lines (365 loc) • 12.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@fabrix/fabrix/dist/common");
const Validator = require("../../validator");
class CountryController extends common_1.FabrixController {
country(req, res) {
}
createCountry(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.createCountry(req.body)
.then(values => {
return CountryService.createCountry(req.body);
})
.then(country => {
return this.app.services.PermissionsService.sanitizeResult(req, country);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
updateCountry(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.updateCountry(req.body)
.then(values => {
return CountryService.updateCountry(req.body);
})
.then(country => {
return this.app.services.PermissionsService.sanitizeResult(req, country);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
destroyCountry(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.destroyCountry(req.body)
.then(values => {
return CountryService.destroyCountry(req.body);
})
.then(country => {
return this.app.services.PermissionsService.sanitizeResult(req, country);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
countries(req, res) {
const Country = this.app.models['Country'];
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);
Country.findAndCountAll({
where: where,
order: sort,
offset: offset,
limit: limit,
req: req,
include: [
{
model: this.app.models['Province'].instance,
as: 'provinces'
}
]
})
.then(countries => {
res.paginate(countries.count, limit, offset, sort);
return this.app.services.PermissionsService.sanitizeResult(req, countries.rows);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
countryProvinces(req, res) {
const countryId = req.params['id'];
const Province = this.app.models['Province'];
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']];
if (!countryId) {
const err = new Error('A country id is required');
return res.send(401, err);
}
Province.findAndCountAll({
where: {
country_id: countryId
},
order: sort,
offset: offset,
limit: limit,
req: req
})
.then(countries => {
res.paginate(countries.count, limit, offset, sort);
return this.app.services.PermissionsService.sanitizeResult(req, countries.rows);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
cities(req, res) {
const City = this.app.models['City'];
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);
City.findAndCountAll({
where: where,
order: sort,
offset: offset,
limit: limit,
req: req
})
.then(cities => {
res.paginate(cities.count, limit, offset, sort);
return this.app.services.PermissionsService.sanitizeResult(req, cities.rows);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
city(req, res) {
}
createCity(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.createCity(req.body)
.then(values => {
return CountryService.createCity(req.body);
})
.then(city => {
return this.app.services.PermissionsService.sanitizeResult(req, city);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
updateCity(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.updateCity(req.body)
.then(values => {
return CountryService.updateCity(req.body);
})
.then(city => {
return this.app.services.PermissionsService.sanitizeResult(req, city);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
destroyCity(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.destroyCity(req.body)
.then(values => {
return CountryService.destroyCity(req.body);
})
.then(city => {
return this.app.services.PermissionsService.sanitizeResult(req, city);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
county(req, res) {
}
createCounty(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.createCounty(req.body)
.then(values => {
return CountryService.createCounty(req.body);
})
.then(county => {
return this.app.services.PermissionsService.sanitizeResult(req, county);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
updateCounty(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.updateCounty(req.body)
.then(values => {
return CountryService.updateCounty(req.body);
})
.then(county => {
return this.app.services.PermissionsService.sanitizeResult(req, county);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
destroyCounty(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.destroyCounty(req.body)
.then(values => {
return CountryService.destroyCounty(req.body);
})
.then(county => {
return this.app.services.PermissionsService.sanitizeResult(req, county);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
counties(req, res) {
const County = this.app.models['County'];
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);
County.findAndCountAll({
where: where,
order: sort,
offset: offset,
limit: limit,
req: req
})
.then(counties => {
res.paginate(counties.count, limit, offset, sort);
return this.app.services.PermissionsService.sanitizeResult(req, counties.rows);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
province(req, res) {
}
createProvince(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.createProvince(req.body)
.then(values => {
return CountryService.createProvince(req.body);
})
.then(province => {
return this.app.services.PermissionsService.sanitizeResult(req, province);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
updateProvince(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.updateProvince(req.body)
.then(values => {
return CountryService.updateProvince(req.body);
})
.then(province => {
return this.app.services.PermissionsService.sanitizeResult(req, province);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
destroyProvince(req, res) {
const CountryService = this.app.services.CountryService;
Validator.validateCountry.destroyProvince(req.body)
.then(values => {
return CountryService.destroyProvince(req.body);
})
.then(province => {
return this.app.services.PermissionsService.sanitizeResult(req, province);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
addProvince(req, res) {
const CountryService = this.app.services.CountryService;
CountryService.addProvince(req.params.id, req.params.province)
.then(province => {
return this.app.services.PermissionsService.sanitizeResult(req, province);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
removeProvince(req, res) {
const CountryService = this.app.services.CountryService;
CountryService.removeProvince(req.params.id, req.params.province)
.then(province => {
return this.app.services.PermissionsService.sanitizeResult(req, province);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
provinces(req, res) {
const Province = this.app.models['Province'];
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);
Province.findAndCountAll({
where: where,
order: sort,
offset: offset,
limit: limit,
req: req
})
.then(provinces => {
res.paginate(provinces.count, limit, offset, sort);
return this.app.services.PermissionsService.sanitizeResult(req, provinces.rows);
})
.then(result => {
return res.json(result);
})
.catch(err => {
return res.serverError(err);
});
}
}
exports.CountryController = CountryController;