Skip to content

Commit 6a3c50d

Browse files
committed
menyelesaikan fitur simpan catatan (selesai)
1 parent 237070e commit 6a3c50d

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

18c-simpancatatan.js

+117
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,120 @@
127127
// kita sudah punya properti dari objek catatan secara lengkap
128128
// sekarang saatnya kita masukkin nilai tsb ke dalam array ntes pake metod push()
129129

130+
/**
131+
* const addNoteHandler = (request,h)=>{
132+
* const {title,tags,body} = request.payload;
133+
* const id = nanoid(16);
134+
* const createdAt = new Date().toISOString();
135+
* const updatedAt = createdAt;
136+
*
137+
* const newNote = {
138+
* title, tags, body, id, createdAt, updatedAt};
139+
* notes.push(newNote);
140+
* };
141+
*/
142+
143+
// jangan lupa impor arrays notes pada berkas handler.js
144+
145+
/**
146+
* const {nanoid} = require('nanoid');
147+
* const notes = require('./notes');
148+
* * const addNoteHandler = (request,h)=>{
149+
* const {title,tags,body} = request.payload;
150+
* const id = nanoid(16);
151+
* const createdAt = new Date().toISOString();
152+
* const updatedAt = createdAt;
153+
*
154+
* const newNote = {
155+
* title, tags, body, id, createdAt, updatedAt,};
156+
* notes.push(newNote);
157+
* };
158+
*/
159+
160+
// lalu bagaimana menentukan apakah newNote sudah masuk ke dalam array notes ?
161+
// kita bs memanfaatkan metod filter() berdasarkan id catatan utk mengetahuinya
162+
// implementasi nya sebagai berikut:
163+
/**
164+
* const addNoteHandler = (request, h) => {
165+
* const {title, tags, body}=request.payload;
166+
* const id = nanoid(16);
167+
* const createdAt = new Date().toISOString();
168+
* const updatedAt = createdAt;
169+
* const newNote = {
170+
* title, tags, body, id, createdAt, updatedAt,};
171+
* notes.push(newNote);
172+
* const isSucces = notes.filter((note)=> note.id ===id).length>0;
173+
* };
174+
*/
175+
176+
// kemudian kita gunakan isSucces utk menentukan respons yang diberikan server. jika isSucces bernilai true makan beri respons berhasil
177+
// jika false maka beri respons gagal
178+
179+
/**
180+
* const addNoteHandler = (request, h) => {
181+
* const {title, tags, body}=request.payload;
182+
* const id = nanoid(16);
183+
* const createdAt = new Date().toISOString();
184+
* const updatedAt = createdAt;
185+
* const newNote = {
186+
* title, tags, body, id, createdAt, updatedAt,};
187+
* notes.push(newNote);
188+
* const isSucces = notes.filter((note)=> note.id ===id).length>0;
189+
*
190+
* if (isSucces){
191+
* const response = h.response({
192+
* status : 'succes',
193+
* message : 'catatan berhasil ditambahkan',
194+
* data : {
195+
* noteId : id,
196+
* },
197+
* });
198+
* response.code(201);
199+
* return response;
200+
* }
201+
*
202+
* const response = h.response({
203+
* status: 'fail',
204+
* message: 'catatan gagal ditambahkan',
205+
* });
206+
* response.code(500);
207+
* return response;
208+
* };
209+
*/
210+
211+
// selanjutnya kita gunakan fungsi handler ini pada konfigurasi route nya
212+
// silahkan buka routes.js lalu ganti fungsi handler menjadi seperti ini:
213+
/**
214+
* {
215+
* method : 'POST',
216+
* path : '/notes',
217+
* handler: addNoteHandler,
218+
* },
219+
*/
220+
221+
// jangan lupa import fungsi addNoteHandler nya pada berkas route.js
222+
// const { addNoteHandler} = require('./handler');
223+
224+
// setelah itu kita gunakan route config pada server. silahkan buka server.js kemudian tambahkan kode
225+
// berikut ini :
226+
227+
/** -- server.js --
228+
*
229+
* const Hapi = require('@hapi/hapi');
230+
* const routes = require('./routes');
231+
*
232+
* const init = async ()=> {
233+
* const server = Hapi.server({
234+
* port : 5000,
235+
* host : 'localhost',
236+
* });
237+
*
238+
* server.route(routes);
239+
* await server.start();
240+
* console.log(`server berjalan pada ${server.info.uri}`);
241+
* };
242+
* init();
243+
*
244+
*/
245+
246+
// ketika kita jalankan webapps maka kembali eror karna dihalangi same-orign policy

0 commit comments

Comments
 (0)