Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
iconfalse

The OPS-COM Controller provides a simple JSON based API to integrate with. Clients use this API to push to OPS-COM new users and update existing users directly from another system. For example, you may wish to push Student and Staff information from Banner directly to OPS-COM.

Table of Contents



Note

Make sure you set the HTTP Content-Type header to be application/json.


Section
bordertrue

Making API Requests

Column
width50%

Raw Request

Code Block
languagetext
themeMidnight
POST /api/OC_TOMA/v1/profiles/push HTTP/1.1
Host: controller.operationscommander.comio
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{
	"apiToken": "YOUR-API-TOKEN",
	"unique_id": "tester23", 
	"login_source": "OPSCOM", 
	"first_name":"firstname",
	"last_name":"lastname",
	"user_name":"username",
	"email":"test@test.com",
	"street":"123 Main Street, 123 Main Street,123 Main Street,123 Main Street,123 Main Street,123 Main Street",
	"city":"Everywhere",
	"province":"bc",
	"state":"NY",
	"postal_code":"HOHOHO",
	"zip":"12345-1212",
    "street2":"123 General Street",
	"city2":"Somewhere",
	"province2":"AB",
	"state2":"MA",
	"postal_code2":"A9A9A9",
	"zip2":"54321-1212",
	"phone_cell":"613-555-1212",
	"user_type_id":"6",
	"employ_no":"employee number: default",
	"employee_phone":"emp ph. klondike 555",
	"student_no":"SN 543209854",
	"student_phone":"999",
	"driver_licence_num":"QC 99999999",
	"driver_license_num":"NYNY",
	"date_of_birth":"1901-01-31",
	"locker_user_type_id":"3",
	"driver_licence_prov":"BC", 
	"driver_license_state":"CA"
}



Column
width50%

JavaScript Request

Code Block
languagejs
themeMidnight
var request = new XMLHttpRequest();

request.open('POST', 'https://controller.operationscommander.comio/api/OC_TOMA/v1/profiles/push');

request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');

request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};


var body = {
	"apiToken": "YOUR-API-TOKEN",
	"unique_id": "tester23", 
	"login_source": "OPSCOM", 
	"first_name":"firstname",
	"last_name":"lastname",
	"user_name":"username",
	"email":"test@test.com",
	"street":"123 Main Street, 123 Main Street,123 Main Street,123 Main Street,123 Main Street,123 Main Street",
	"city":"Everywhere",
	"province":"bc",
    "state":"NY",
    "postal_code":"HOHOHO",
    "zip":"12345-1212",
    "street2":"123 General Street",
	"city2":"Somewhere",
	"province2":"AB",
	"state2":"MA",
	"postal_code2":"A9A9A9",
	"zip2":"54321-1212",
    "phone_cell":"613-555-1212",
    "user_type_id":"6",
    "employ_no":"employee number: default",
    "employee_phone":"emp ph. klondike 555",
    "student_no":"SN 543209854",
    "student_phone":"999",
    "driver_licence_num":"QC 99999999",
    "driver_license_num":"NYNY",
    "date_of_birth":"1901-01-31",
    "locker_user_type_id":"3",
    "driver_licence_prov":"BC", 
    "driver_license_state":"CA"
}
request.send(JSON.stringify(body));



Request Object Attributes

AttributeTypeLimitsPossible NamesDescription
apiTokenString

50-character alphanumeric including dashes.

apiToken(Required)Your supplied API Token.
Unique IDString50-character alphanumeric including dashes.unique_id(Required) An unique identification number of the user.
Login SourceString20-character alphanumeric including dashes.login_source(Required)Your supplied login source.
First NameString50-character alphanumeric including dashes.first_name(Optional)  User's first name.
Last NameString50-character alphanumeric including dashes.last_name(Optional) User's last name.
User NameString50-character alphanumeric including dashes.user_name(Optional) Unique username.
EmailString100-character alphanumeric including dashes.email(Optional) Valid email address .
Street - address 1String
street(Optional) User's primary street number and name.
City - address 1String50-character alphanumeric including dashes.city(Optional) User's primary city name.
Province - address 1String2-character postal abbreviation eg. "MA"

province,

state

(Optional)  User's primary province or state.
Postal Code - address 1String20-character alphanumeric including dashes.

postal_code,

zip

(Optional) User's primary postal code or zip.
Street - address 2String20-character alphanumeric including dashes.street2(Optional) User's alternate street number and name.
City - address 2String50-character alphanumeric including dashes.city2(Optional) User's alternate city name.
Province - address 2String2-character postal abbreviation eg. "MA"

province2,

state2

(Optional) User's alternate province or state.
Postal_Code - address 2String20-character alphanumeric including dashes.

postal_code2,

zip2

(Optional) User's alternate postal code or zip.
Cell phone numberString20-character alphanumeric including dashes.phone_cell(Optional) User's cell phone number
User Type IDStringId number of UserTypeuser_type_id(Optional) A reference number to the type of user.
Employee NumberString50-character alphanumeric including dashes.employ_no(Optional) User's employee number. 
Employee phone numberString50-character alphanumeric including dashes.employee_phone(Optional) User's employee phone number.
Student numberString50-character alphanumeric including dashes.student_no(Optional) User's student number.
Student phone numberString50-character alphanumeric including dashes.student_phone(Optional) User's student phone number.
Driver licence numberString255-character alphanumeric including dashes.

driver_licence_num,

driver_license_num

(Optional) User's driver's licence number or driver's license number.
Date of BirthString10-character date in format 'yyyy-mm-dd'date_of_birth(Optional) User's date of birth in format "YYYY-MM-DD.
Locker User Type IDStringId number of LockerUserTypelocker_user_type_id(Optional) A reference the the user's locker type id of the user.
Driver's licence provinceString2-character postal abbreviation eg. "MA"

driver_licence_prov,

driver_license_state

(Optional) The province or state of the user's driver's licence.



Successful Response

The response will be a json object. 

Content-Type: application/json

Code Block
languagejs
themeMidnight
{
    "status": "success",
    "reference_id": 44
}


Related Pages

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
cqllabel = "apis" and space = currentSpace ( )


Show if
special@authenticated


Support Agent Notes

In order for a client to use this, they would have to have paid for the right to integrate with OPS-COM, been issued an API Key and had their integration validated by testing with us.


Server setup

nGinx needs to have Access-Control-Allow-Origin : * to work.

The controller also needs to be behind a certificate. 




Client Setup

There is some setup related to getting clients to use the API. First, they must have an API token that exists on the api_tokens table. They then have to have an api_permission record that lists what kind of permission the token can have. 

The permission needed for this API request is user-create. The api_token_id must be the id of the API token the client will be using from the api_tokens table.