diff options
Diffstat (limited to 'lib/serve.js')
-rw-r--r-- | lib/serve.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/serve.js b/lib/serve.js index 504c633..62aa86f 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -395,7 +395,7 @@ Serve.prototype.channel = function (channel) { function threadHeads(msgs, rootId) { return sort.heads(msgs.filter(function (msg) { - var c = msg.value.content + var c = msg.value && msg.value.content return (c && c.root === rootId) || msg.key === rootId })) @@ -407,14 +407,15 @@ Serve.prototype.id = function (id, ext) { if (self.query.raw != null) return self.rawId(id) this.app.getMsgDecrypted(id, function (err, rootMsg) { - var rootContent = rootMsg && rootMsg.value.content - var getRoot = err ? pull.error(err) : pull.once(rootMsg) + if (err && err.name === 'NotFoundError') err = null, rootMsg = {key: id} + if (err) return self.respond(500, err.stack || err) + var rootContent = rootMsg && rootMsg.value && rootMsg.value.content var recps = rootContent && rootContent.recps var threadRootId = rootContent && rootContent.root || id var channel = rootContent && rootContent.channel pull( - cat([getRoot, self.app.sbot.links({dest: id, values: true})]), + cat([pull.once(rootMsg), self.app.sbot.links({dest: id, values: true})]), pull.unique('key'), paramap(self.app.unboxMsg, 4), pull.collect(function (err, links) { |