day 11
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2020*/
|
||||
/**
|
||||
* Pagination Service
|
||||
* @copyright 2020 Manaknightdigital Inc.
|
||||
* @link https://manaknightdigital.com
|
||||
* @license Proprietary Software licensing
|
||||
* @author Ryan Wong
|
||||
*
|
||||
*/
|
||||
module.exports = function (page, numItems) {
|
||||
this.page = page ? Number(page) : 1;
|
||||
this.numItems = numItems ? Number(numItems) : 20;
|
||||
this.data = [];
|
||||
this.count = 0;
|
||||
this.numPages = 0;
|
||||
|
||||
this.getItems = function () {
|
||||
return this.data;
|
||||
};
|
||||
|
||||
this.getPage = function () {
|
||||
return this.page;
|
||||
};
|
||||
|
||||
this.getCount = function () {
|
||||
return this.count;
|
||||
};
|
||||
|
||||
this.setCount = function (count) {
|
||||
this.count = count;
|
||||
};
|
||||
|
||||
this.getNumPages = function () {
|
||||
return this.numPages;
|
||||
};
|
||||
|
||||
this.setItems = function (data) {
|
||||
if (data.length == 1 && !data[0].id) {
|
||||
this.count = 0;
|
||||
this.numPages = 1;
|
||||
this.data = [data[0]];
|
||||
return this;
|
||||
}
|
||||
this.data = data;
|
||||
this.numPages = this.count > 1 ? Math.ceil(this.count / this.numItems) : 1;
|
||||
|
||||
this.data = this.data.map(function (transaction) {
|
||||
delete transaction.num;
|
||||
return transaction.toJSON();
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this.getOffset = function () {
|
||||
return (this.page - 1) * this.numItems;
|
||||
};
|
||||
|
||||
this.getLimit = function () {
|
||||
return this.numItems;
|
||||
};
|
||||
|
||||
return this;
|
||||
};
|
||||
Reference in New Issue
Block a user