1.1.4 • Published 2 years ago

mtr-mongo-dt v1.1.4

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

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
KeyTypeContoh ValueKeterangan
searchStringsome textparam untuk melakukan string pencarian
lengthNumber10param untuk memberikan limit jumlah data yang ditampilkan setiap page
pageNumber1param untuk menampilkan data pada offset tertentu
ordercolumnStringcreated_atparam untuk melakukan ordering berdasarkan column yang dipilih
orderdirectionStringasc or descsort order yang dilakukan
columnsindex(Number)Stringnameparam untuk menampilkan column yang diinginkan pada response balikan
columnsindex(Number)Booleantrue or falseparam untuk menjadikan suatu column dengan index tertentu bisa dilakukan pencarian
columnsindex(Number)Stringrange or onlyparam 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)Array0,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": [
      { ... },
      { ... },
      ...
    ]
  }
}