1
1
'use strict'
2
2
3
3
const Joi = require ( 'joi' )
4
+ const Boom = require ( 'boom' )
4
5
5
6
const CID = require ( 'cids' )
6
7
@@ -16,34 +17,27 @@ exports.findPeer = {
16
17
arg : Joi . string ( ) . required ( )
17
18
} ) . unknown ( )
18
19
} ,
19
- handler : ( request , reply ) => {
20
+ async handler ( request , h ) {
20
21
const ipfs = request . server . app . ipfs
21
22
const { arg } = request . query
23
+ let res
22
24
23
- ipfs . dht . findPeer ( arg , ( err , res ) => {
24
- if ( err ) {
25
- log . error ( err )
26
-
27
- if ( err . code === 'ERR_LOOKUP_FAILED' ) {
28
- return reply ( {
29
- Message : err . toString ( ) ,
30
- Code : 0
31
- } ) . code ( 404 )
32
- }
33
-
34
- return reply ( {
35
- Message : err . toString ( ) ,
36
- Code : 0
37
- } ) . code ( 500 )
25
+ try {
26
+ res = await ipfs . dht . findPeer ( arg )
27
+ } catch ( err ) {
28
+ if ( err . code === 'ERR_LOOKUP_FAILED' ) {
29
+ throw Boom . notFound ( err . toString ( ) )
30
+ } else {
31
+ throw Boom . boomify ( err , { message : err . toString ( ) } )
38
32
}
33
+ }
39
34
40
- reply ( {
41
- Responses : [ {
42
- ID : res . id . toB58String ( ) ,
43
- Addrs : res . multiaddrs . toArray ( ) . map ( ( a ) => a . toString ( ) )
44
- } ] ,
45
- Type : 2
46
- } )
35
+ return h . response ( {
36
+ Responses : [ {
37
+ ID : res . id . toB58String ( ) ,
38
+ Addrs : res . multiaddrs . toArray ( ) . map ( ( a ) => a . toString ( ) )
39
+ } ] ,
40
+ Type : 2
47
41
} )
48
42
}
49
43
}
@@ -56,29 +50,20 @@ exports.findProvs = {
56
50
timeout : Joi . number ( )
57
51
} ) . unknown ( )
58
52
} ,
59
- handler : ( request , reply ) => {
53
+ async handler ( request , h ) {
60
54
const ipfs = request . server . app . ipfs
61
55
const { arg } = request . query
62
56
63
57
request . query . maxNumProviders = request . query [ 'num-providers' ]
64
58
65
- ipfs . dht . findProvs ( arg , request . query , ( err , res ) => {
66
- if ( err ) {
67
- log . error ( err )
68
-
69
- return reply ( {
70
- Message : err . toString ( ) ,
71
- Code : 0
72
- } ) . code ( 500 )
73
- }
59
+ const res = await ipfs . dht . findProvs ( arg , request . query )
74
60
75
- reply ( {
76
- Responses : res . map ( ( peerInfo ) => ( {
77
- ID : peerInfo . id . toB58String ( ) ,
78
- Addrs : peerInfo . multiaddrs . toArray ( ) . map ( ( a ) => a . toString ( ) )
79
- } ) ) ,
80
- Type : 4
81
- } )
61
+ return h . response ( {
62
+ Responses : res . map ( ( peerInfo ) => ( {
63
+ ID : peerInfo . id . toB58String ( ) ,
64
+ Addrs : peerInfo . multiaddrs . toArray ( ) . map ( ( a ) => a . toString ( ) )
65
+ } ) ) ,
66
+ Type : 4
82
67
} )
83
68
}
84
69
}
@@ -90,24 +75,15 @@ exports.get = {
90
75
timeout : Joi . number ( )
91
76
} ) . unknown ( )
92
77
} ,
93
- handler : ( request , reply ) => {
78
+ async handler ( request , h ) {
94
79
const ipfs = request . server . app . ipfs
95
80
const { arg } = request . query
96
81
97
- ipfs . dht . get ( Buffer . from ( arg ) , ( err , res ) => {
98
- if ( err ) {
99
- log . error ( err )
82
+ const res = await ipfs . dht . get ( Buffer . from ( arg ) )
100
83
101
- return reply ( {
102
- Message : err . toString ( ) ,
103
- Code : 0
104
- } ) . code ( 500 )
105
- }
106
-
107
- reply ( {
108
- Extra : res . toString ( ) ,
109
- Type : 5
110
- } )
84
+ return h . response ( {
85
+ Extra : res . toString ( ) ,
86
+ Type : 5
111
87
} )
112
88
}
113
89
}
@@ -118,7 +94,7 @@ exports.provide = {
118
94
arg : Joi . string ( ) . required ( )
119
95
} ) . unknown ( )
120
96
} ,
121
- handler : ( request , reply ) => {
97
+ async handler ( request , h ) {
122
98
const ipfs = request . server . app . ipfs
123
99
const { arg } = request . query
124
100
let cid
@@ -127,25 +103,12 @@ exports.provide = {
127
103
cid = new CID ( arg )
128
104
} catch ( err ) {
129
105
log . error ( err )
130
-
131
- return reply ( {
132
- Message : err . toString ( ) ,
133
- Code : 0
134
- } ) . code ( 500 )
106
+ throw Boom . boomify ( err , { message : err . toString ( ) } )
135
107
}
136
108
137
- ipfs . dht . provide ( cid , request . query , ( err ) => {
138
- if ( err ) {
139
- log . error ( err )
140
-
141
- return reply ( {
142
- Message : err . toString ( ) ,
143
- Code : 0
144
- } ) . code ( 500 )
145
- }
109
+ await ipfs . dht . provide ( cid )
146
110
147
- reply ( { } )
148
- } )
111
+ return h . response ( )
149
112
}
150
113
}
151
114
@@ -155,29 +118,20 @@ exports.put = {
155
118
arg : Joi . array ( ) . items ( Joi . string ( ) ) . length ( 2 ) . required ( )
156
119
} ) . unknown ( )
157
120
} ,
158
- parseArgs : ( request , reply ) => {
159
- return reply ( {
121
+ parseArgs : ( request , h ) => {
122
+ return {
160
123
key : request . query . arg [ 0 ] ,
161
124
value : request . query . arg [ 1 ]
162
- } )
125
+ }
163
126
} ,
164
- handler : ( request , reply ) => {
127
+ async handler ( request , h ) {
165
128
const key = request . pre . args . key
166
129
const value = request . pre . args . value
167
130
const ipfs = request . server . app . ipfs
168
131
169
- ipfs . dht . put ( Buffer . from ( key ) , Buffer . from ( value ) , ( err ) => {
170
- if ( err ) {
171
- log . error ( err )
172
-
173
- return reply ( {
174
- Message : err . toString ( ) ,
175
- Code : 0
176
- } ) . code ( 500 )
177
- }
132
+ await ipfs . dht . put ( Buffer . from ( key ) , Buffer . from ( value ) )
178
133
179
- reply ( { } )
180
- } )
134
+ return h . response ( )
181
135
}
182
136
}
183
137
@@ -187,25 +141,15 @@ exports.query = {
187
141
arg : Joi . string ( ) . required ( )
188
142
} ) . unknown ( )
189
143
} ,
190
- handler : ( request , reply ) => {
144
+ async handler ( request , h ) {
191
145
const ipfs = request . server . app . ipfs
192
146
const { arg } = request . query
193
147
194
- ipfs . dht . query ( arg , ( err , res ) => {
195
- if ( err ) {
196
- log . error ( err )
197
-
198
- return reply ( {
199
- Message : err . toString ( ) ,
200
- Code : 0
201
- } ) . code ( 500 )
202
- }
148
+ const res = await ipfs . dht . query ( arg )
149
+ const response = res . map ( ( peerInfo ) => ( {
150
+ ID : peerInfo . id . toB58String ( )
151
+ } ) )
203
152
204
- const response = res . map ( ( peerInfo ) => ( {
205
- ID : peerInfo . id . toB58String ( )
206
- } ) )
207
-
208
- reply ( response )
209
- } )
153
+ return h . response ( response )
210
154
}
211
155
}
0 commit comments