From 3183069d7c6b549775e896504a0bfbb28f17d9a6 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sun, 12 Apr 2020 05:06:01 +0700 Subject: all: beri penjelasan tentang kolom "pesan" pada response Bersamaan dengan ini, perbaiki juga respons pada halaman proyek untuk menampilkan kolom "pesan". --- README.adoc | 10 +++++++--- _www-kbbi/index.html | 20 ++++++++++++++++---- _www-kbbi/index.js | 34 +++++++++++++++++++++++++++------- direct_client.go | 2 +- kata.go | 10 +++++++--- 5 files changed, 58 insertions(+), 18 deletions(-) diff --git a/README.adoc b/README.adoc index 0dcef73..80b4375 100644 --- a/README.adoc +++ b/README.adoc @@ -89,6 +89,7 @@ Format respons dalam JSON, { "": { "dasar": "", + "pesan": "", "definisi": [{ "isi": "", "kelas": [], @@ -100,9 +101,12 @@ Format respons dalam JSON, } ---- -Berikut contoh pemanggilan API untuk mencari definisi dari kata "kamus" dan -"bahasa", +Jika kata tidak ditemukan atau bila kata bukan kata baku, bagian "pesan" akan +berisi keterangan yang menjelaskan galat dari pencarian. -https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahasa +Berikut contoh pemanggilan API untuk mencari definisi dari kata "kamus", +"bahaza" (kata tidak ditemukan), dan "analisa" (kata tidak baku): + +https://kilabit.info/project/kbbi/api/definisi?kata=kamus,bahaza,analisa Sekian, selamat meretas! diff --git a/_www-kbbi/index.html b/_www-kbbi/index.html index b92eece..a9a5110 100644 --- a/_www-kbbi/index.html +++ b/_www-kbbi/index.html @@ -255,6 +255,7 @@ GET /definisi?kata=<string>,... { "<string>": { "dasar": "<string>", + "pesan": "<string>", "definisi": [{ "isi": "<string>", "kelas": [<string>], @@ -267,14 +268,20 @@ GET /definisi?kata=<string>,... +

+ Jika kata tidak ditemukan atau bila kata bukan kata baku, bagian + "pesan" akan berisi keterangan yang menjelaskan galat dari + pencarian. +

Berikut contoh pemanggilan API untuk mencari definisi dari kata - "kamus" dan "bahasa", + "kamus", "bahaza" (kata tidak ditemukan), dan "analisa" (kata + tidak baku): - /definisi?kata=kamus,bahasa + /api/definisi?kata=kamus,bahaza,analisa

@@ -282,7 +289,12 @@ GET /definisi?kata=<string>,...
- +
diff --git a/_www-kbbi/index.js b/_www-kbbi/index.js index 5e0749e..f5f0217 100644 --- a/_www-kbbi/index.js +++ b/_www-kbbi/index.js @@ -27,26 +27,46 @@ function printResultKata(out, kata, defKata) { el.appendChild(document.createTextNode(kata)) out.appendChild(el) + if (typeof defKata.pesan !== "undefined" && defKata.pesan !== "") { + printPesan(out, defKata.pesan) + return + } + printKataDasar(out, defKata.dasar) printDefinitions(out, defKata.definisi) } +function printPesan(out, pesan) { + let root = document.createElement("div") + root.appendChild(document.createTextNode(pesan)) + out.appendChild(root) +} + function printKataDasar(out, kataDasar) { + // Seriously, JavaScript? + if ( + typeof kataDasar === "undefined" || + kataDasar === null || + kataDasar === "" + ) { + return + } + let root = document.createElement("div") root.appendChild(document.createTextNode("Kata dasar: ")) - if (kataDasar === "") { - root.appendChild(document.createTextNode("-")) - } else { - let italic = document.createElement("i") - italic.appendChild(document.createTextNode(kataDasar)) - root.appendChild(italic) - } + let italic = document.createElement("i") + italic.appendChild(document.createTextNode(kataDasar)) + root.appendChild(italic) out.appendChild(root) } function printDefinitions(out, definitions) { + if (typeof definitions === "undefined" || definitions === null) { + return + } + for (let x = 0; x < definitions.length; x++) { let def = definitions[x] diff --git a/direct_client.go b/direct_client.go index aa296b5..5817b51 100644 --- a/direct_client.go +++ b/direct_client.go @@ -120,7 +120,7 @@ func (cl *directClient) CariDefinisi(ins []string) ( kata.err = err } - if len(kata.Definisi) == 0 { + if len(kata.Definisi) == 0 && len(kata.Pesan) == 0 { kata.Pesan = "Entri tidak ditemukan" } } diff --git a/kata.go b/kata.go index 85ecb82..dc19bcc 100644 --- a/kata.go +++ b/kata.go @@ -21,10 +21,14 @@ func (kata *Kata) Err() error { // Kata store the single root word and its definitions. // type Kata struct { - Dasar string `json:"dasar"` + Dasar string `json:"dasar,omitempty"` Definisi []*DefinisiKata `json:"definisi"` - Pesan string `json:"pesan"` - err error + + // Pesan will contains the message when the word is not found or the + // word is informal (kata tidak baku). + Pesan string `json:"pesan,omitempty"` + + err error } // -- cgit v1.3