@graasp/etherpad-api
v2.1.1
Published
Promised based query to etherpad-lite
Downloads
189
Readme
etherpad-api
Promised based query to etherpad-lite
how it works
It uses request-promise-native to call each Etherpad API endpoints
The API are similar
- Methods names are identical to the API documentation
- The same goes for the params You just have to pass them as an object
But there is some differences:
Etherpad-api
will reject any Etherpad response which code isn't 0- All errors will be created by http-errors
- It will error if you try to call an endpoint that isn't implemented on the Etherpad API version you're using
configuration
const Etherpad = require('@hiswe/etherpad-api')
const etherpad = new Etherpad({
apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
// API KEY
url: `http://my-etherpad-server`,
// default: http://0.0.0.0:9001 (local etherpad server)
// full URL to your etherpad server
apiVersion: `1.0.0`
// default: latest (1.2.13)
// If you want to prevent your application from calling unsupported methods
timeout: 7000
// default: 1000
// request timeout
})
// now you have access to all etherpad methods…
use
As an example: calling getHTML
etherpad
.getHTML({ padID: `my-pad` })
.then(data => console.log(data))
.catch(error => console.log(error))
if you don't want to error on etherpad errors:
add false
as the second parameter
etherpad
// add `false` as the second parameter
.getHTML({ padID: `a-pad-that-does-not-exist` }, false)
.then(data => {
// data will be null because “padID does not exist”
assert.equal(data, null)
console.log(data)
})
.catch(error => console.log(error))
full example
const express = require('express')
const Etherpad = require('@hiswe/etherpad-api')
const app = express()
const etherpad = new Etherpad({
url: `http://my-etherpad-server`,
apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
})
app.get(`/pads/:padID`, (req, res) => {
const { padID } = req.params
etherpad
.getHTML({ padID })
.then(padData => res.send(padData))
.catch(error => res.status(error.statusCode).json(error))
})
class use
alternatively you could use/extend the original class
const Etherpad = require('@hiswe/etherpad-api')
class MyEtherpad extends Etherpad {
// …you can extend the class here
}
const etherpad = new MyEtherpad({
url: `http://my-etherpad-server`,
apiKey: `6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7`,
})
other stuff
changelog
See CHANGELOG.md
run the tests
- clone the project
npm install
npm test