11'use strict'
22
33const Joi = require ( 'joi' )
4+ const Boom = require ( 'boom' )
45
56const CID = require ( 'cids' )
67
@@ -16,34 +17,27 @@ exports.findPeer = {
1617 arg : Joi . string ( ) . required ( )
1718 } ) . unknown ( )
1819 } ,
19- handler : ( request , reply ) => {
20+ async handler ( request , h ) {
2021 const ipfs = request . server . app . ipfs
2122 const { arg } = request . query
22-
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 )
23+ let res
24+
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 ( ) } )
3832 }
33+ }
3934
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
4741 } )
4842 }
4943}
@@ -56,29 +50,20 @@ exports.findProvs = {
5650 timeout : Joi . number ( )
5751 } ) . unknown ( )
5852 } ,
59- handler : ( request , reply ) => {
53+ async handler ( request , h ) {
6054 const ipfs = request . server . app . ipfs
6155 const { arg } = request . query
6256
6357 request . query . maxNumProviders = request . query [ 'num-providers' ]
6458
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 )
7460
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
8267 } )
8368 }
8469}
@@ -90,24 +75,15 @@ exports.get = {
9075 timeout : Joi . number ( )
9176 } ) . unknown ( )
9277 } ,
93- handler : ( request , reply ) => {
78+ async handler ( request , h ) {
9479 const ipfs = request . server . app . ipfs
9580 const { arg } = request . query
9681
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 ) )
10083
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
11187 } )
11288 }
11389}
@@ -118,7 +94,7 @@ exports.provide = {
11894 arg : Joi . string ( ) . required ( )
11995 } ) . unknown ( )
12096 } ,
121- handler : ( request , reply ) => {
97+ async handler ( request , h ) {
12298 const ipfs = request . server . app . ipfs
12399 const { arg } = request . query
124100 let cid
@@ -127,25 +103,12 @@ exports.provide = {
127103 cid = new CID ( arg )
128104 } catch ( err ) {
129105 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 ( ) } )
135107 }
136108
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 )
146110
147- reply ( { } )
148- } )
111+ return h . response ( )
149112 }
150113}
151114
@@ -155,29 +118,20 @@ exports.put = {
155118 arg : Joi . array ( ) . items ( Joi . string ( ) ) . length ( 2 ) . required ( )
156119 } ) . unknown ( )
157120 } ,
158- parseArgs : ( request , reply ) => {
159- return reply ( {
121+ parseArgs : ( request , h ) => {
122+ return {
160123 key : request . query . arg [ 0 ] ,
161124 value : request . query . arg [ 1 ]
162- } )
125+ }
163126 } ,
164- handler : ( request , reply ) => {
127+ async handler ( request , h ) {
165128 const key = request . pre . args . key
166129 const value = request . pre . args . value
167130 const ipfs = request . server . app . ipfs
168131
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 ) )
178133
179- reply ( { } )
180- } )
134+ return h . response ( )
181135 }
182136}
183137
@@ -187,25 +141,15 @@ exports.query = {
187141 arg : Joi . string ( ) . required ( )
188142 } ) . unknown ( )
189143 } ,
190- handler : ( request , reply ) => {
144+ async handler ( request , h ) {
191145 const ipfs = request . server . app . ipfs
192146 const { arg } = request . query
193147
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+ } ) )
203152
204- const response = res . map ( ( peerInfo ) => ( {
205- ID : peerInfo . id . toB58String ( )
206- } ) )
207-
208- reply ( response )
209- } )
153+ return h . response ( response )
210154 }
211155}
0 commit comments