Frost Client helps you to easily integrate your applications with Po.et's API.
Install Frost Client from the NPM repository or directly from this GitHub repository:
$ npm install @po.et/frost-client
$ yarn add @po.et/frost-client
$ git clone [email protected]:poetapp/frost-client.git
$ cd frost-client && npm link
import { Frost } from '@po.et/frost-client'
const { Frost } = require('@po.et/frost-client')
You will need a token to access the Po.et API, which you can obtain from explorer.poetnetwork.net.
import { Frost } from '@po.et/frost-client'
const config = {
host: 'https://explorer.poetnetwork.net', // required
timeout: 10 // default 10 seconds
}
const token = YOUR_POET_API_TOKEN
const frost = new Frost(config)
Returns a promise with the API's response. Throws in case of errors.
async function createWork() {
try {
const work = {
name: 'My first work in Frost',
datePublished: '2017-11-24T00:38:41.595Z', // ISO date
dateCreated: '2017-11-24T00:38:41.595Z', // ISO date
author: 'Me',
tags: 'Frost,the best', // tags separation by commas
content: 'The best content'
}
const { workId } = await frost.createWork(token, work)
} catch(e) {
console.log(e)
}
}
createWork()
Returns a promise with the API's response. Throws in case of errors.
async function getWork () {
try {
const workId = '123456'
const work = await frost.getWork(token, workId)
} catch(e) {
console.log(e)
}
}
getWork()
Returns a promise with the API's response. Throws in case of errors.
const getAllWorks = async () => {
try {
const works = await frost.getWorks(token)
} catch(e) {
console.log(e)
}
}
getAllWorks()
Upload a file to Frost.
Example using NodeJS:
const readStream = createReadStream('path/to/file.ext')
const [{ archiveUrl }] = await frostClient.postArchive(apiKey, readStream)
Or, if in a browser:
const file = document.querySelector('input[type=file]').files[0]
const [{ archiveUrl }] = await frostClient.postArchive(apiKey, file)
You can then use this archiveUrl
as part of the claim that will be submitted to Frost with createWork
:
const work = {
name: 'My first work in Frost',
datePublished: '2017-11-24T00:38:41.595Z',
dateCreated: '2017-11-24T00:38:41.595Z',
author: 'Me',
tags: 'Frost,the best',
archiveUrl, // omit the content field
}
const { workId } = await frost.createWork(token, work)