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.com
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.com/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_idUnique IDString50-character alphanumeric including dashes.unique_id(Required)Your unique_id.login_source An unique identification number of the user.
Login SourceString20-character alphanumeric including dashes.login_source(Required)Your supplied login source.
first_nameFirst NameString50-character alphanumeric including dashes.first_name(Optional)  User's first name.last_name
Last NameString50-character alphanumeric including dashes.last_name(Optional) User's last name.user_name
User NameString50-character alphanumeric including dashes.user_name(Optional) Unique username.
emailEmailString100-character alphanumeric including dashes.email(Optional) Valid email address streetaddress .
Street - address 1String
street(Optional) User's first addresscityprimary street number and name.
City - address 1String50-character alphanumeric including dashes.city(Optional) User's first addressprovinceprimary city name.
Province - address 1String2-character postal abbreviation eg. "MA"

province,

state

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

postal_code,

zip

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

province2,

state2

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

postal_code2,

zip2

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

driver_licence_num,

driver_license_num

(Optional) date_of_birthUser'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_idStringId number of LockerUserType(Optional) driver_licence_provA 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 token 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.