1.1.4 • Published 2 years ago
mtr-mongo-dt v1.1.4
Meteor MongoDB DataTable
Meteor MongoDB DataTable adalah datatable builder untuk MongoDB.
Installation
npm i git+ssh://git@repository.meteor.asia/mtr-platform/libs/mongodb-datatable#v1.1.2
Penggunaan
Deklarasikan constant untuk memanggil library di dalam file model.
Buat function datatable yang akan digunakan.
Task attributes:
- select
- where
- populate
API Query Params for Index
Key | Type | Contoh Value | Keterangan |
---|---|---|---|
search | String | some text | param untuk melakukan string pencarian |
length | Number | 10 | param untuk memberikan limit jumlah data yang ditampilkan setiap page |
page | Number | 1 | param untuk menampilkan data pada offset tertentu |
ordercolumn | String | created_at | param untuk melakukan ordering berdasarkan column yang dipilih |
orderdirection | String | asc or desc | sort order yang dilakukan |
columnsindex(Number) | String | name | param untuk menampilkan column yang diinginkan pada response balikan |
columnsindex(Number) | Boolean | true or false | param untuk menjadikan suatu column dengan index tertentu bisa dilakukan pencarian |
columnsindex(Number) | String | range or only | param untuk menjadikan suatu column dengan index tertentu menjadi penyaringan hasil response balikan. Hanya ada dua opsi yaitu range dan only. Range bersifat penyaringan berdasarkan suatu column dengan rentang dua nilai integer. Only bersifat penyaringan berdasarkan suatu column dengan nilai yang termasuk dalam array |
columnsindex(Number) | Array | 0,100 or 'Andi', 'Budi', ... | param berupa array yang menjadi nilai untuk param columnsindex()Number. Jika type berupa range maka value adalah array yang terdiri dari dua integer membentuk sebuah rentang nilai. Jika type berupa only maka value adalah array yang terdiri dari satu atau lebih data |
const datatable = require('mtr-mongo-dt');
exports.dt = async (params) => {
const attributes = { select, where };
return datatable(attributes, params, table)
.then(ok => ok)
.catch((err) => {
throw err;
});
};
};
Function tersebut dapat digunakan, misal, dalam file controller seperti berikut:
const { dt } = require('../models/model-file');
exports.index = async (req, res) => {
const { query } = req;
await dt(query)
.then(ok => response(200, ok, res))
.catch(err => response(400, err, res));
};
Contoh response dari library ini adalah sbb:
{
"status": 200,
"message": "OK",
"value": {
"total": 21,
"total_filtered": 15,
"total_displayed": 10,
"total_page": 2,
"page": 1,
"data": [
{ ... },
{ ... },
...
]
}
}
1.1.4
2 years ago