re-frame Effectful Handlers to work with IPFS network's HTTP API, using cljs-ipfs-http-client
Using:
(ns my.app.handlers
(:require [district0x.re-frame.ipfs-fx]))
The library relies on the HTTP API signatures, so follow this docs, Also, return values and responses in callbacks are automatically kebab-cased and keywordized. You can provide IPFS instance as an :inst map entry, in case you'd need more than one connection:
;;Setup your handlers
(reg-event-fx
::init-ipfs
interceptors
(fn [_ [config]]
{:ipfs/init config}))
(reg-event-fx
::list-files
interceptors
(fn [_ [url]]
{:ipfs/call {:func "ls"
:args [url]
:on-success [::on-list-files-success]
:on-error [::error]}}))
(reg-event-fx
::on-list-files-success
interceptors
(fn [{:keys [:db]} [data]]
{:db (assoc db :files data)}))
(dispatch [::init-ipfs {:host "http://127.0.0.1:5001" :endpoint "/api/v0"}])
(dispatch [::list-files "/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/"])
Can you improve this documentation? These fine people already did:
Mike Konkov, madvas & filipEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close