Table (JSON:API)

Pengembang bisa memanfaatkan method getTable untuk melakukan operasi yang berhubungan dengan data (CRUD) pada backend.

client.getTable(tableName);

Arguments

nametypedescription
tableNamestringidentitas tabel

Return

Promise<Object>

instance baru referensi terhadap tabel pada backend yang berupa chaining method.

Table methods

read()

digunakan untuk mendapatkan data pada tabel secara keseluruhan.

Example

table = client.getTable("book");
(async function () {
const result = await table.read();
console.log(result); // berisi data buku
})();

Return

Promise<Object[]>

semua data table.

lookup()

digunakan untuk mendapatkan data by id pada tabel.

Arguments

nametypedescriptionspecial use
idstring / numberidentitas data

Example

table = client.getTable("book");
(async function () {
const result = await table.lookup("3a331285-9623-4478-beca-852ed6b56a1b");
console.log(result); // berisi data buku dengan id "3a331285-9623-4478-beca-852ed6b56a1b"
})();

Return

Promise<Object>

data tabel sesuai denga id yang dimasukkan

insert()

digunakan untuk menambahkan data ke dalam tabel.

Arguments

nametypedescriptionspecial use
dataobjectdata yang akan ditambahkan dengan format json api

Example

table = client.getTable("book");
(async function () {
const result = await table.insert({
name: "book baru",
author: "author baru",
});
console.log(result); // berisi data buku yang berhasil dimasukkan
})();

Return

Promise<Object>

berisi data buku yang berhasil dimasukkan

update()

digunakan untuk menambahkan data ke dalam tabel.

Arguments

nametypedescriptionspecial use
dataobjectdata yang akan di-update dengan format json api

Example

table = client.getTable("book");
(async function () {
const result = await table.update({
id: "19c7ec1f-41f4-46c7-beb1-29f652a9da2e",
data: {
name: "book baru",
author: "author baru",
},
});
console.log(result); // berisi data buku yang berhasil di-update
})();

Return

Promise<Object>

berisi data buku yang berhasil dimasukkan

del()

digunakan untuk menghapus data pada tabel.

Arguments

nametypedescriptionspecial use
paramsobjectidentitas data yang akan dihapus

Example

table = client.getTable("book");
(async function () {
await table.del({ id: "58895c90-1696-4cf4-925c-7b78bf0e77f8" });
})();

Return

Promise<Void>

composeFilter(baseOperator)

Arguments

nametypedescription
baseOperatorenum "and", "or"default base operator

example

import moco from "@mocobaas/client-js`";
const client = new moco.init("http://localhost:3000");
const table = client.getTable("book");
const builder = table.composeFilter;
const odataFilter = builder.eq(foo, "foo").eq(bar, "bar").toOdata();
console.log(odataFilter); // (foo eq 'foo') or (bar eq 'bar')

filter(params)

digunakan untuk menambahkan filter pada query string pada method read.

Arguments

nametypedescriptionspecial use
paramsodata filterfilter dengan format odataread()

Example

table = client.getTable("book");
(async function () {
const result = await table.filter(
table.composeFilter().eq("name", "book1").toOData().read()
);
console.log(result); // berisi data buku dengan name="book1"
})();

sort(params)

digunakan untuk menambahkan sort pada query string pada method read.

Arguments

nametypedescriptionspecial use
paramsstringnama kolom yang akan digunakan sebagai acuan pengurutan, bisa berisi lebih dari satu kolom dipisahkan dengan ","(koma) dan gunakan "-" untuk kebutuhan descendingread()

Example

table = client.getTable("book");
(async function () {
const result = await table.sort("name,-author").read();
console.log(result); // berisi data buku dengan urutan nama(ascending), dan author(descending)
})();

limit(params)

digunakan untuk menambahkan sort pada query string pada method read.

Arguments

nametypedescriptionspecial use
paramsnumberlimitasi data yang diambil (digunakan untuk pagination)[default=10]read()

Example

table = client.getTable("book");
(async function () {
const result = await table.limit(5).read();
console.log(result); // berisi 5 data buku teratas
})();

offset(params)

digunakan untuk menambahkan offset pada query string pada method read.

Arguments

nametypedescriptionspecial use
paramsstringjumlah data yang akan dilewati dari index pertama (digunakan untuk pagination)read()

Example

table = client.getTable("book");
(async function () {
const result = await table.offset(10).read();
console.log(result); // berisi data buku dari index ke 11
})();

fields(params)

digunakan untuk menambahkan fields pada query string pada method read dan lookup.

Arguments

nametypedescriptionspecial use
paramsstringnama kolom yang akan ditampilkan dipisahkan dengan "," (koma)read(), lookup()

Example

table = client.getTable("book");
(async function () {
const result = await table.fields("id, name, author").read();
console.log(result); // berisi data buku dengan fields=id, name, author
})();

include(params)

digunakan untuk menambahkan include pada query string pada method read dan lookup untuk menampilkan data relasi.

Arguments

nametypedescriptionspecial use
paramsstringnama tabel relasi yang akan ikut ditampilkanread(), lookup()

Example

table = client.getTable("book");
(async function () {
const result = await table.include("order").read();
console.log(result); // berisi data buku dengan relasinya "order"
})();

relationships(params)

digunakan untuk menambahkan relationships pada query string pada method lookup untuk menampilkan data relasi (tanpa data induk).

Arguments

nametypedescriptionspecial use
paramsstringnama tabel relasi yang akan ikut ditampilkanlookup(), update(), del()

Example

table = client.getTable("book");
(async function () {
const result = await table
.relationships("order")
.lookup("8d279d0a-6899-4870-bfc1-f8d029da8020");
console.log(result); // berisi data order yang memiliki relasi dengan book id "8d279d0a-6899-4870-bfc1-f8d029da8020"
})();