cubic-client
v3.6.5
Published
Cubic API client.
Downloads
22
Readme
Installation
npm install cubic-client
Usage
const Client = require('cubic-client')
const client = new Client()
cubic.get('/foo').then(res => console.log(res.body)) // bar
Configuration
const Client = require('cubic-client')
const client = new Client({key: value})
| Key | Default | Description |
|:------------- |:------------- |:------------- |
| api_url | 'http://localhost:3003/'
| URL of cubic API-Node to connect to |
| auth_url | 'http://localhost:3030/'
| URL of cubic Auth-Node to authenticate with |
| user_key | null
| User key obtained via Auth-Node registration |
| user_secret | null
| User secret obtained via Auth-Node
API
client.awaitConnection()
Returns a promise that resolves once the client is fully connected.
client.isConnected()
Returns a boolean wether the connection is up or not.
RESTful methods
client.query(verb, query)
Sends a GET request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| verb | RESTful verb. e.g. GET
. | None |
| query | Request query, either string or body object. | None |
client.get(url)
Sends a GET request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| url | URL to request, without domain. e.g. /foo
. | None |
client.post(url, body)
Sends a POST request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| url | URL to request, without domain. e.g. /foo
. | None |
| body | Data to send to endpoint. Can be any data type. | None |
client.put(url, body)
Sends a PUT request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| url | URL to request, without domain. e.g. /foo
. | None |
| body | Data to send to endpoint. Can be any data type. | None |
client.patch(url, body)
Sends a PATCH request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| url | URL to request, without domain. e.g. /foo
. | None |
| body | Data to send to endpoint. Can be any data type. | None |
client.delete(url, body)
Sends a DELETE request to the API-Node
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| url | URL to request, without domain. e.g. /foo
. | None |
| body | Data to send to endpoint. Can be any data type. | None |
Pub/Sub
client.subscribe(endpoint, fn)
Subscribe to updates on a specific endpoint.
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| endpoint | URL to listen for updates on, without domain. e.g. '/foo'
| None |
| fn | Function to run when updates are received. Takes the new data as argument. | None |
client.unsubscribe(endpoint)
Unsubscribe to updates on a specific endpoint.
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| endpoint | URL that you are currently subscribed to, without domain. e.g. '/foo'
| None |
Authentication
client.login(user, secret)
Re-authorizes as a specific user at runtime. Usually users should be logged in through the constructor options.
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| user | User id, equal to user_key
when registering. | None |
| secret | User password, equal to user_secret
when registering. | None |
client.setRefreshToken(token)
Manually set the refresh token. This way user credentials needn't be exposed.
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| token | refresh_token
to use. | None |
client.getRefreshToken()
Retrieve current refresh token. Will await any existing authentication process. Useful if the initial login can be done through user/pass but the refresh token needs to be stored for subsequent logins.
client.setAccessToken(token)
Manually set the access token. This will expire on the next refresh.
| Argument | Description | Default |
|:------------- |:------------- |:------------- |
| token | access_token
to use. | None |
client.getRefreshToken()
Retrieve current access token. Will await any existing authentication process.