Skip to content
This repository has been archived by the owner on Mar 10, 2020. It is now read-only.

Commit

Permalink
feat: add remaining dht methods
Browse files Browse the repository at this point in the history
  • Loading branch information
daviddias committed Apr 14, 2017
1 parent 78d8f25 commit 7ca52c0
Showing 1 changed file with 91 additions and 32 deletions.
123 changes: 91 additions & 32 deletions src/api/dht.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,20 @@ const streamToValue = require('../stream-to-value')

module.exports = (send) => {
return {
findprovs: promisify((args, opts, callback) => {
if (typeof opts === 'function' &&
!callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' &&
typeof callback === 'function') {
callback = opts
opts = {}
}

const request = {
path: 'dht/findprovs',
args: args,
qs: opts
}

send.andTransform(request, streamToValue, callback)
}),
get: promisify((key, opts, callback) => {
if (typeof opts === 'function' &&
!callback) {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' &&
typeof callback === 'function') {
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}

const handleResult = (done, err, res) => {
function handleResult (done, err, res) {
if (err) {
return done(err)
}
Expand Down Expand Up @@ -73,17 +48,16 @@ module.exports = (send) => {
qs: opts
}, handleResult.bind(null, callback))
}),

put: promisify((key, value, opts, callback) => {
if (typeof opts === 'function' &&
!callback) {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' &&
typeof callback === 'function') {
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}
Expand All @@ -93,6 +67,91 @@ module.exports = (send) => {
args: [key, value],
qs: opts
}, callback)
}),

findprovs: promisify((cid, opts, callback) => {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}

send.andTransform({
path: 'dht/findprovs',
args: cid,
qs: opts
}, streamToValue, callback)
}),

findpeer: promisify((peerId, opts, callback) => {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}

send.andTransform({
path: 'dht/findpeers',
args: peerId,
qs: opts
}, streamToValue, callback)
}),

provide: promisify((cids, opts, callback) => {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}

if (!Array.isArray(cids)) {
cids = [cids]
}

send({
path: 'dht/provide',
args: cids,
qs: opts
}, callback)
}),

// find closest peerId to given peerId
query: promisify((peerId, opts, callback) => {
if (typeof opts === 'function' && !callback) {
callback = opts
opts = {}
}

// opts is the real callback --
// 'callback' is being injected by promisify
if (typeof opts === 'function' && typeof callback === 'function') {
callback = opts
opts = {}
}

send({
path: 'dht/query',
args: peerId,
qs: opts
}, callback)
})
}
}

0 comments on commit 7ca52c0

Please sign in to comment.