Connection packages to connect to Cubic API nodes. Choose your target platform from the available branches.
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.