Frost Client
Frost Client helps you to easily integrate your applications with Po.et's API.
Index
Getting Started
Install
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 git@github.com:poetapp/frost-client.git
$ cd frost-client && npm link
Import
import { Frost } from '@po.et/frost-client'
const { Frost } = require('@po.et/frost-client')
Initialize
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)
Methods
Create Work
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()
Get Work By ID
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()
Get All Works
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()
Post Archive
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)