Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit 95dfd21

Browse files
committed
fix: fix error handling and cleanup log
1 parent 1234218 commit 95dfd21

File tree

2 files changed

+19
-38
lines changed

2 files changed

+19
-38
lines changed

src/http/api/resources/files.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ exports.add = {
165165
},
166166

167167
handler: (request, reply) => {
168-
console.log('yoo')
169168
if (!request.payload) {
170169
return reply({
171170
Message: 'Array, Buffer, or String is required.',
@@ -184,10 +183,6 @@ exports.add = {
184183
parser.on('file', (fileName, fileStream) => {
185184
fileName = decodeURIComponent(fileName)
186185

187-
console.log('file', fileName)
188-
fileStream.on('data', (d) => {
189-
console.log(d.byteLength)
190-
})
191186
const filePair = {
192187
path: fileName,
193188
content: toPull(fileStream)
@@ -198,7 +193,6 @@ exports.add = {
198193

199194
parser.on('directory', (directory) => {
200195
directory = decodeURIComponent(directory)
201-
console.log('directory', directory)
202196
fileAdder.push({
203197
path: directory,
204198
content: ''

src/http/api/routes/files.js

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,14 @@ const { serialize } = require('pull-ndjson')
1616
const streams = []
1717
const filesDir = tempy.directory()
1818

19-
const responseError = (msg, code, request, abortStream) => {
20-
const err = JSON.stringify({ Message: msg, Code: code })
21-
request.raw.res.addTrailers({
22-
'X-Stream-Error': err
23-
})
24-
abortStream.abort()
25-
}
26-
const createMultipartStream = (readStream, boundary, ipfs, request, reply, cb) => {
19+
const createMultipartReply = (readStream, boundary, ipfs, query, reply) => {
2720
const fileAdder = pushable()
2821
const parser = new multipart.Parser({ boundary: boundary })
29-
let filesParsed = false
3022

3123
readStream.pipe(parser)
3224

3325
parser.on('file', (fileName, fileStream) => {
3426
console.log('File: ', fileName)
35-
filesParsed = true
3627
fileAdder.push({
3728
path: decodeURIComponent(fileName),
3829
content: toPull(fileStream)
@@ -49,15 +40,10 @@ const createMultipartStream = (readStream, boundary, ipfs, request, reply, cb) =
4940
parser.on('end', () => {
5041
console.log('multipart end')
5142
fileAdder.end()
52-
if (!filesParsed) {
53-
reply({
54-
Message: "File argument 'data' is required.",
55-
Code: 0,
56-
Type: 'error'
57-
}).code(400).takeover()
58-
}
5943
})
6044

45+
// TODO: handle multipart errors
46+
6147
const pushStream = pushable()
6248
const abortStream = abortable()
6349
const replyStream = toStream.source(pull(
@@ -77,34 +63,35 @@ const createMultipartStream = (readStream, boundary, ipfs, request, reply, cb) =
7763
reply(replyStream)
7864
.header('x-chunked-output', '1')
7965
.header('content-type', 'application/json')
80-
.header('Trailer', 'X-Stream-Error')
8166

8267
const progressHandler = (bytes) => {
8368
pushStream.push({ Bytes: bytes })
8469
}
8570
// ipfs add options
8671
const options = {
87-
cidVersion: request.query['cid-version'],
88-
rawLeaves: request.query['raw-leaves'],
89-
progress: request.query.progress ? progressHandler : null,
90-
onlyHash: request.query['only-hash'],
91-
hashAlg: request.query.hash,
92-
wrapWithDirectory: request.query['wrap-with-directory'],
93-
pin: request.query.pin,
94-
chunker: request.query.chunker
72+
cidVersion: query['cid-version'],
73+
rawLeaves: query['raw-leaves'],
74+
progress: query.progress ? progressHandler : null,
75+
onlyHash: query['only-hash'],
76+
hashAlg: query.hash,
77+
wrapWithDirectory: query['wrap-with-directory'],
78+
pin: query.pin,
79+
chunker: query.chunker
9580
}
9681

9782
pull(
9883
fileAdder,
9984
ipfs.files.addPullStream(options),
10085
pull.collect((err, files) => {
10186
if (err) {
102-
return responseError(err.msg, 0, request)
103-
}
104-
if (files.length === 0) {
105-
return responseError('Failed to add files.', 0, request)
87+
pushStream.push({
88+
Message: err.toString(),
89+
Code: 0,
90+
Type: 'error'
91+
})
92+
pushStream.end()
93+
return
10694
}
107-
console.log(files)
10895
files.forEach((f) => pushStream.push(f))
10996
pushStream.end()
11097
})
@@ -216,7 +203,7 @@ module.exports = (server) => {
216203
stream.on('finish', function () {
217204
console.log('add to ipfs from the file')
218205
var readStream = fs.createReadStream(file)
219-
createMultipartStream(readStream, boundary, ipfs, request, reply)
206+
createMultipartReply(readStream, boundary, ipfs, request.query, reply)
220207
})
221208

222209
stream.end()

0 commit comments

Comments
 (0)