simple-in-out

0.2.5 • Public • Published

Simple In/Out API Wrapper for Node.js

See Simple In/Out API documentation for more details.

Installation

npm install simple-in-out

Usage

Compatible with Node.js >= 0.12.0 or io.js >= 1.0.0.

All methods return native promises.

With AWS S3 Credential Storage

var SimpleInOut = require("simple-in-out");

var client_a = new SimpleInOut({
  client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
  client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
  redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
  aws_access_key_id: process.env.AWS_ACCESS_KEY_ID,
  aws_secret_access_key: process.env.AWS_SECRET_ACCESS_KEY,
  aws_s3_bucket: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_BUCKET,
  aws_s3_key: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_KEY
});

var client_b = new SimpleInOut({
  client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
  client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
  redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
  aws_access_key_id: process.env.AWS_ACCESS_KEY_ID,
  aws_secret_access_key: process.env.AWS_SECRET_ACCESS_KEY,
  aws_s3_bucket: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_BUCKET,
  aws_s3_key: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_KEY
});

client_a.get_access_token(process.env.SIMPLE_IN_OUT_AUTHORIZATION_CODE).then(function(){
  // Credentials are stored on AWS S3 after initialization with authorization code
  return client_a.ok();
}).then(function(result){
  assert(result.version);
  // Credentials fetched from AWS S3
  return client_b.ok();
}).then(function(result){
  assert(result.version);
});

Without AWS S3 Credential Storage

With an authorization code:

var SimpleInOut = require("simple-in-out");

var client_a = new SimpleInOut({
  client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
  client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
  redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI
});

var client_b = new SimpleInOut({
  client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
  client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
  redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI
});

client_a.get_access_token(process.env.SIMPLE_IN_OUT_AUTHORIZATION_CODE).then(function(credentials){
  // Credentials can be set directly, bypassing get_access_token()
  return client_b.set_credentials(credentials);
}).then(function(){
  return client_a.ok();
}).then(function(result){
  assert(result.version);
  return client_b.ok();
}).then(function(result){
  assert(result.version);
});

With access and refresh tokens:

var SimpleInOut = require("simple-in-out");

var client = new SimpleInOut({
  client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
  client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
  redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
  access_token: process.env.SIMPLE_IN_OUT_ACCESS_TOKEN,
  refresh_token: process.env.SIMPLE_IN_OUT_REFRESH_TOKEN
});

client.ok().then(function(result){
  assert(result.version);
});

API

new SimpleInOut(options)

Simple In/Out API client constructor.

Required:

  • options.client_id: Simple In/Out application ID string.
  • options.client_secret: Simple In/Out secret string.
  • options.redirect_uri: Simple In/Out redirect URI.

Required for AWS S3 credential storage:

  • options.aws_access_key_id: Amazon AWS access key ID string.
  • options.aws_secret_access_key: Amazon AWS secret access key string.
  • options.aws_s3_bucket: Amazon AWS S3 bucket name string. Bucket must exist.
  • options.aws_s3_key: Amazon AWS S3 key string.

Optional:

  • options.access_token: Simple In/Out access token.
  • options.refresh_token: Simple In/Out refresh token.

.get_access_token([authorization_code])

Get access and refresh tokens via oAuth2 flow or from AWS S3 credential storage.

Required for use without AWS S3 credential storage, or when intializing with AWS S3 credential storage:

  • authorization_code: Authorization code from Simple In/Out oAuth2 flow.

.get_credentials_from_aws_s3()

Get access and refresh tokens from AWS S3 credential storage.

.set_credentials(options)

Set access and refresh tokens. Stores credentials when used with AWS S3 credential storage.

Required:

  • options.access_token: Simple In/Out access token.
  • options.refresh_token: Simple In/Out refresh token.

.refresh_access_token()

Refresh access token. Stores credentials when used with AWS S3 credential storage.

.ok()

Verify your API client. See Simple In/Out documentation for additional details.

.company()

Retrieve company information. See Simple In/Out documentation for additional details.

.fences()

Retrieve company geofences. See Simple In/Out documentation for additional details.

.groups()

Retrieve company groups. See Simple In/Out documentation for additional details.

.statuses([query_parameters])

Retrieve current statuses. See Simple In/Out documentation for additional details.

Optional:

  • query_parameters.group_id: Group ID to restrict the list of statuses.

.current_user()

Retrieve current user. See Simple In/Out documentation for additional details.

.user(user_id)

Retrieve a user. See Simple In/Out documentation for additional details.

Required:

  • user_id: User ID.

.user_statuses(user_id, query_parameters)

Retrieve a user's usage statistics. See Simple In/Out documentation for additional details.

Required:

  • user_id: User ID.
  • query_parameters.start_date: Start date to begin with. String in the format MM/DD/YYYY.
  • query_parameters.end_date: End date of statuses, no more than 31 days from start_date, in the format MM/DD/YYYY.

Optional:

  • query_parameters.comment: Only consider “in” statuses with this comment as “in”. String.
  • query_parameters.expanded: Set to true if all statuses are to be included, otherwise defaults to aggregate statistics. Boolean.

Testing

  • Copy run-tests.sh.sample to run-tests.sh.
  • Generate an authorization code via the Simple In/Out oAuth2 flow: https://www.simpleinout.com/oauth/authorize?response_type=code&client_id=XXXXXXXX&redirect_uri=XXXXXXXX
  • Edit run-tests.sh to include AWS credentials, Simple In/Out credentials, and the authorization code.
  • Run npm test

Readme

Keywords

none

Package Sidebar

Install

npm i simple-in-out

Weekly Downloads

0

Version

0.2.5

License

MIT

Last publish

Collaborators

  • wehriam