Skip to content

Commit eac41b2

Browse files
authored
Merge pull request #1 from ryumada/develop
reconstruct with hapi plugin
2 parents 9bd0aaf + b9b18b2 commit eac41b2

File tree

7 files changed

+43
-182
lines changed

7 files changed

+43
-182
lines changed

src/api/notes/handler.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
class NotesHandler {
22
constructor(service) {
33
this._service = service;
4+
5+
// bind global variable this
6+
this.postNoteHandler = this.postNoteHandler.bind(this);
7+
this.getNotesHandler = this.getNotesHandler.bind(this);
8+
this.getNoteByIdHandler = this.getNoteByIdHandler.bind(this);
9+
this.putNoteByIdHandler = this.putNoteByIdHandler.bind(this);
10+
this.deleteNoteByIdHandler = this.deleteNoteByIdHandler.bind(this);
411
}
512

613
postNoteHandler (request, h) {

src/api/notes/index.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const NotesHandler = require('./handler');
2+
const routes = require('./routes');
3+
4+
module.exports = {
5+
name: 'notes',
6+
version: '1.0.0',
7+
register: async(server, { service }) => {
8+
const notesHandler = new NotesHandler(service);
9+
server.route(routes(notesHandler));
10+
},
11+
};

src/handler.js

Lines changed: 0 additions & 130 deletions
This file was deleted.

src/notes.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/routes.js

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/server.js

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
const Hapi = require('@hapi/hapi');
2-
const routes = require('./routes');
2+
const notes = require('./api/notes');
3+
const NotesService = require('./services/inMemory/NotesService');
34

45
const init = async () => {
5-
const server = Hapi.server({
6-
port: 5000,
7-
host: process.env.NODE_ENV !== 'production' ? 'localhost' : '0.0.0.0',
8-
routes: {
9-
cors: {
10-
origin: ['*'],
11-
},
12-
},
13-
});
6+
const notesService = new NotesService();
147

15-
server.route(routes);
8+
const server = Hapi.server({
9+
port: 5000,
10+
// eslint-disable-next-line no-undef
11+
host: process.env.NODE_ENV !== 'production' ? 'localhost' : '0.0.0.0',
12+
routes: {
13+
cors: {
14+
origin: ['*'],
15+
},
16+
},
17+
});
1618

17-
await server.start();
18-
console.log(`Server berjalan pada ${server.info.uri}`);
19+
await server.register({
20+
plugin: notes,
21+
options: {
22+
service: notesService,
23+
},
24+
});
25+
26+
await server.start();
27+
console.log(`Server berjalan pada ${server.info.uri}`);
1928
};
2029

2130
init();

src/services/inMemory/NotesService.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
const { nanoid } = require('nanoid');
2+
13
class NotesService {
24
constructor() {
35
this._notes = [];
46
}
57

68
addNote({title, body, tags}) {
7-
// eslint-disable-next-line no-undef
8-
const id = nano(16);
9+
const id = nanoid(16);
910
const createdAt = new Date().toISOString();
1011
const updatedAt = createdAt;
1112

0 commit comments

Comments
 (0)