Promised based query to etherpad-lite
npm install @graasp/etherpad-api 
Promised based query to etherpad-lite
- how it works
- configuration
- use
- full example
- class use
- other stuff
- changelog
- run the tests
- alternatives
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
``js
const Etherpad = require('@hiswe/etherpad-api')
const etherpad = new Etherpad({
apiKey: 6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7,http://my-etherpad-server
// API KEY
url: ,1.0.0
// default: http://0.0.0.0:9001 (local etherpad server)
// full URL to your etherpad server
apiVersion:
// 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…
`
As an example: calling getHTML
`jsmy-pad
etherpad
.getHTML({ padID: })`
.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
`jsfalse
etherpad
// add as the second parametera-pad-that-does-not-exist
.getHTML({ padID: }, false)`
.then(data => {
// data will be null because “padID does not exist”
assert.equal(data, null)
console.log(data)
})
.catch(error => console.log(error))
`js
const express = require('express')
const Etherpad = require('@hiswe/etherpad-api')
const app = express()
const etherpad = new Etherpad({
url: http://my-etherpad-server,6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7
apiKey: ,
})
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))
})
alternatively you could use/extend the original class
`js
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,6b95f6d270f4f719f1b70e8ad2f742deef94c5bccee7d495250c0fbb8cecefc7
apiKey: ,`
})
See CHANGELOG.md
- clone the project
- npm installnpm test`
-