Skip to content

Instantly share code, notes, and snippets.

@tcaddy
Last active October 13, 2015 20:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tcaddy/480cbbf8ed3b995b67df to your computer and use it in GitHub Desktop.
Save tcaddy/480cbbf8ed3b995b67df to your computer and use it in GitHub Desktop.
This will test the Ellucian API. It will retrieve the photo and phone numbers associated with a PERSON ID.
<html>
<head>
<title>Ellucian API Tester</title>
<style>
body {
margin: 10px;
font-family: Calibri,Helvetica,Arial,sans-serif;
font-style:normal;
}
.flexbox-container {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
flex-wrap: wrap;
justify-content: center;
}
.header {
flex: 1 100%;
order: 1;
}
div#form-wrapper {
order: 2;
}
form label {
width: 5em;
display: inline-block;
}
form #colleagueID label {
width: 12em !important;
}
div#status {
min-height: 10em;
flex: 1 100%;
order: 3;
}
div#status > h4 {
margin: 0;
}
div#status > div {
background-color: #eaeaea;
}
div#photos {
order: 4;
}
div#phones {
order: 5;
}
.clear {
clear: both;
}
</style>
</head>
<body class="flexbox-container">
<div class="header">
<h1>Ellucian API Tester</h1>
<h3>This will test the Ellucian API to make sure it is working OK</h3>
</div>
<div id="form-wrapper">
<form id="login">
<div id="username">
<label for="username">Username</label>
<input name="username" />
</div>
<div id="password">
<label for="password">Password</label>
<input type="password" name="password" />
</div>
<div id="secretKey" style="display:none;">
<label for="secretKey">(Optional) Secret Key for web service request (bypass API)</label>
<input name="secretKey" />
</div>
<div id="colleagueID" style="display:none;">
<label for="colleagueID">Colleague ID (for querying)</label>
<input name="colleagueID" />
</div>
<div>
<input type="submit" value="Login to API" />
</div>
</form>
</div>
<div id="status">
<h4>Status:</h4>
<div>Not Logged In</div>
</div>
<div id="photos">
<div>
<img id="api-photo" /><br />
API Photo
</div>
</div>
<div class="clear"></div>
<div id="phones">
<ul />
</div>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
// https://github.com/henrya/js-jquery/tree/master/BinaryTransport
// use this transport for "binary" data type
$.ajaxTransport("+binary", function(options, originalOptions, jqXHR){
// check for conditions and support for blob / arraybuffer response type
if (window.FormData && ((options.dataType && (options.dataType == 'binary')) || (options.data && ((window.ArrayBuffer && options.data instanceof ArrayBuffer) || (window.Blob && options.data instanceof Blob))))) {
return {
// create new XMLHttpRequest
send: function(headers, callback){
// setup all variables
var xhr = new XMLHttpRequest(),
url = options.url,
type = options.type,
async = options.async || true,
// blob or arraybuffer. Default is blob
dataType = options.responseType || "blob",
data = options.data || null,
username = options.username || null,
password = options.password || null;
xhr.addEventListener('load', function(){
var data = {};
data[options.dataType] = xhr.response;
// make callback and send data
callback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());
});
xhr.open(type, url, async, username, password);
// setup custom headers
for (var i in headers ) {
xhr.setRequestHeader(i, headers[i] );
}
xhr.responseType = dataType;
xhr.send(data);
},
abort: function(){}
};
}
});
</script>
<script>
var HPU = window.HPU || {};
HPU.api = HPU.api || {};
window.jQuery(function(){
(function ($,undefined) {
HPU.after_load = function() {
HPU.setup_api_settings();
HPU.setup_login_form();
HPU.setup_colleague_id_field();
};
HPU.setup_api_settings = function() {
HPU.api = HPU.api || {};
HPU.api.base_url = "https://apihost.yourschool.edu/ColleagueApi/";
HPU.api.timeout = 60; // in seconds
HPU.reset_api_credentials();
}
HPU.reset_api_credentials = function() {
HPU.api.username = null;
HPU.api.password = null;
if (HPU.api.logged_in()) {
HPU.api.logout();
}
}
HPU.setup_login_form = function() {
$('form#login').on('submit', function(e) {
e.preventDefault();
e.stopImmediatePropagation();
if (HPU.api.logged_in()) {
HPU.api.logout();
} else {
HPU.reset_api_credentials();
var sel = $(e.currentTarget);
HPU.api.username = sel.find("input[name='username']").val();
HPU.api.password = sel.find("input[name='password']").val();
HPU.api.login();
}
return false;
});
}
HPU.api.login = function() {
$.ajax({
cache: false,
data: JSON.stringify({
'UserId': HPU.api.username,
'Password': HPU.api.password
}),
headers: HPU.api.headers(),
method: 'POST',
timeout: HPU.api.timeout*1000,
url: HPU.api.base_url+'session/login'
})
.done(function(data,status,xhr){
if (data && data!=='') {
HPU.api.token = data;
}
if (HPU.api.logged_in()) {
HPU.set_status('Successfully Logged In!');
HPU.logoutify_form();
}
})
.fail(function(xhr,status,err){
console.log({xhr:xhr,status:status,err:err});
HPU.set_status('Login Failed!');
})
};
HPU.api.logout = function() {
$.ajax({
cache: false,
headers: HPU.api.headers(),
method: 'POST',
timeout: HPU.api.timeout*1000,
url: HPU.api.base_url+'session/logout'
})
.done(function(data,status,xhr){
HPU.reset_api_credentials();
HPU.api.token = null;
if (!HPU.api.logged_in()) {
HPU.set_status('Successfully Logged Out!');
HPU.loginify_form();
}
})
.fail(function(xhr,status,err){
console.log({xhr:xhr,status:status,err:err});
HPU.set_status('Logout Failed!');
})
HPU.api.token=null;
HPU.api.proxy_token=null;
};
HPU.api.logged_in = function() {
return HPU.api.token!==null && (typeof(HPU.api.token)!=='undefined') && HPU.api.token!=='';
};
HPU.api.headers = function(proxy,hedtech) {
var obj = {
Accept: 'application/vnd.ellucian.v1+json',
'Content-Type': 'application/json'
}
if (HPU.api.logged_in()) {
obj['X-CustomCredentials'] = proxy ? HPU.api.proxy_token : HPU.api.token;
}
if (hedtech) {
// some undocumented API endpoints (such as those used by Ellucian Pilot) require this header
obj["X-Ellucian-Media-Type"]='application/vnd.hedtech.integration.v1+json';
}
return obj;
}
HPU.logoutify_form = function() {
$("form#login div#username,form#login div#password").hide();
$("form#login div#colleagueID").show();
$("form#login input[type='submit']")[0].value = 'Logout';
};
HPU.loginify_form = function () {
$("form#login div#colleagueID").hide();
$("form#login div#username,form#login div#password").show();
$("form#login input[type='submit']")[0].value = 'Login to API';
}
HPU.set_status = function(html) {
$("div#status > div").html(html);
}
HPU.setup_colleague_id_field = function(e) {
$("form#login input[name='colleagueID'").on('change',function(e) {
var sel = $(e.currentTarget);
if (parseInt(sel.val(),10)>0) {
HPU.api.id = HPU.format_colleague_id(sel.val());
HPU.query_colleague_id();
} else {
HPU.set_status('Invalid Colleague ID. Please try again.');
}
});
}
HPU.query_colleague_id = function() {
// get the photo from the API
HPU.query_api_photo();
// get some other API data besides photo
$("div#phones > ul").html('');
$.ajax({
headers: HPU.api.headers(),
method: "GET",
timeout: HPU.api.timeout*1000,
url: HPU.api.base_url+'phone-numbers/'+HPU.api.id
})
.done(function(data,status,xhr){
var sel = $("div#phones > ul");
$.each(data.PhoneNumbers,function(i,item){
var el = '<li>'+item.Number;
if (item.Extension && item.Extension!=='') {
el += 'x'+item.Extension;
}
el += ' ('+item.TypeCode+')</li>'
sel.append(el);
});
})
.fail(function(xhr,status,err){
HPU.set_status('API phone request failed!');
});
}
HPU.query_api_photo = function() {
$("img#api-photo").attr('src','data:image/jpeg;base64, '+HPU.unknown_photo());
$.ajax({
dataType: "binary",
headers: HPU.api.headers(),
method: "GET",
timeout: HPU.api.timeout*1000,
url: HPU.api.base_url+'photos/people/'+HPU.api.id
})
.done(function(data,status,xhr){
HPU.data = data;
HPU.reader = new window.FileReader();
HPU.reader.readAsDataURL(data);
HPU.reader.onloadend = function() {
$("img#api-photo").attr('src',HPU.reader.result);
}
})
.fail(function(xhr,status,err){
HPU.set_status('API photo request failed!');
});
}
HPU.format_colleague_id = function(id) {
return ("0000000" + parseInt(id,10)).slice(-7);
}
HPU.api.get = function(path,proxy,hedtech,callback) {
$.ajax({
beforeSend: function() {
HPU.api.get_result=null;
},
headers: HPU.api.headers(proxy,hedtech),
method: "GET",
timeout: HPU.api.timeout*1000,
url: HPU.api.base_url+path
})
.done(function(data,status,xhr){
HPU.api.get_result = data
callback;
})
.fail(function(xhr,status,err){
HPU.set_status('API request failed!');
});
}
HPU.unknown_photo = function() {
return "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";
}
HPU.after_load();
})(window.jQuery);
});
</script>
</body>
</html>
@tcaddy
Copy link
Author

tcaddy commented Oct 9, 2015

You should put this file in the parent folder to the "ColleagueApi" folder that hosts your API. This HTML file needs to be served from the same host, port, and protocol as your API so that you don't get browser permission errors.

You should edit the value of HPU.api.base_url to be the path to your API instance.

Also, if you are using something besides 7 digit zero padded integers for the PERSON ID, you should also edit the HPU.format_colleague_id function appropriately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment