Last active
October 13, 2015 20:44
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.