0.2.5 • Published 10 years ago

simple-in-out v0.2.5

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

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
0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago