arena-client
v1.0.2
Published
A typed javascript wrapper for the Are.na API.
Downloads
2
Readme
Are.na API Wrapper
A typed javascript wrapper for the Are.na API. Currently implements all but 3 endpoints listed in the official documentation.
Note: Attributes returned from the API do not exactly match those within the documentation. As such there may be additional attributes returned from the API that are not defined within the types.
Installation
npm install arena-client
or
yarn add arena-client
Example Usage
import { ArenaClient } from 'arena-client'
// Initialize Objects
const arena = new ArenaClient()
const channel = arena.Channel('arena-influences')
// Generic Request
const channelAttributes = await channel.get()
// Authenticated Request
const newBlock = await channel.addBlock(process.env.ACCESS_TOKEN, {
type: 'Text',
data: 'Morbi vel ultrices elit, non blandit massa.'
})
// Paginated Request
const content = await channel.getContent({
page: 2,
per: 5
})
Endpoints
Implemented
| Entity | Endpoint | Function | Authenticated | Paginated | | :-----: | - | - | - | - | | Users | GET /v2/users/:id | User(id).get | - | - | | Users | GET /v2/users/:id/channels | User(id).getChannels | yes | - | | Users | GET /v2/users/:id/following | User(id).getFollowers | yes | - | | Block | GET /v2/blocks/:id | Block(id).get | - | - | | Block | GET /v2/blocks/:id/channels | Block(id).getChannels | - | yes | | Block | PUT /v2/blocks/:id | Block(id).update | - | yes | | Channel | GET /v2/channels/:slug | Channel(idOrSlug).get | - | - | | Channel | PUT /v2/channels/:slug | Channel(idOrSlug).update | yes | - | | Channel | DELETE /v2/channels/:slug | Channel(idOrSlug).delete | yes | - | | Channel | POST /v2/channels | createChannel | yes | - | | Channel | GET /v2/channels | createChannel | yes | - | | Channel | GET /v2/channels/:id/connections | Channel(idOrSlug).getConnections | - | yes | | Channel | GET /v2/channels/:id/channels | Channel(idOrSlug).getChannels | - | yes | | Channel | GET /v2/channels/:id/contents | Channel(idOrSlug).getContent | - | yes | | Channel | POST /v2/channels/:id/block | Channel(idOrSlug).addBlock | yes | - | | Channel | DELETE /v2/channels/:id/block/:id | Channel(idOrSlug).deleteBlock | yes | - | | Channel | GET /v2/channels/:id/collaborators | Channel(idOrSlug).getCollaborators | - | yes | | Channel | POST /v2/channels/:id/collaborators | Channel(idOrSlug).addCollaborators | yes | yes | | Channel | DELETE /v2/channels/:id/collaborators | Channel(idOrSlug).deleteCollaborators | yes | yes |
Not Implemented
| Entity | Endpoint | Reason | | :-----: | - | - | | Channels | GET /v2/channels/ | Successful request consistently responses with an error code of 500 | | Channels | PUT /v2/channels/:channel_id/blocks/:id/selection | Limited documentation on use case & how to form a request | | Channels | PUT /v2/channels/:slug/sort | Limited documentation on use case & how to form a request |
Future Improvements
- Unit test coverage
- Under-go a discovery on the shape of the data returned from the API & update the types accordingly