127
127
// kita sudah punya properti dari objek catatan secara lengkap
128
128
// sekarang saatnya kita masukkin nilai tsb ke dalam array ntes pake metod push()
129
129
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