Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title>RAMP Api</title>
- <link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
- <link href='css/hightlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
- <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
- <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
- <script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
- <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
- <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
- <script src='lib/handlebars-1.0.rc.1.js' type='text/javascript'></script>
- <script src='lib/underscore-min.js' type='text/javascript'></script>
- <script src='lib/backbone-min.js' type='text/javascript'></script>
- <script src='lib/swagger.js' type='text/javascript'></script>
- <script src='lib/jquery.lightbox_me.js' type='text/javascript'></script>
- <script src='swagger-ui.js' type='text/javascript'></script>
- <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
- <script type="text/javascript">
- var tokenCheckInterval = null;
- var currentToken = null;
- var currentTokenSettings = null;
- var inRefresh = false;
- var origionalPath = window.location.toString().split("swagger")[0];
- var authPath = window.location.toString().split("swagger")[0] + "docs";
- var currentApiPath = window.location.toString().split("swagger")[0]+ "docs";
- function setToken(token, refreshToken, settings){
- inRefresh = false;
- window.swaggerUi.options.api_key = token;
- window.swaggerUi.api.api_key = token;
- window.swaggerUi.options.api_refresh_key = refreshToken;
- window.swaggerUi.api.api_refresh_key = refreshToken;
- $("#input_apiKey").val(token);
- $("#input_api_refreshKey").val(refreshToken);
- currentToken = token;
- currentTokenSettings = settings;
- clearInterval(tokenCheckInterval);
- tokenCheckInterval = setInterval(checkToken, 1000);
- checkToken();
- }
- function checkToken(){
- if(currentTokenSettings == null){
- return;
- }
- var s = currentTokenSettings;
- if(s.tokenExpires){
- var remains = s.tokenExpires - new Date().getTime();
- if(remains < 0){
- /** Need to refresh it! **/
- if(inRefresh != true && s.refresh){
- inRefresh = true;
- refreshToken();
- }
- remains = 0;
- }
- var secs = Math.floor(remains / 1000);
- var mins = Math.floor(secs / 60);
- secs = secs - (mins * 60);
- $("#refreshBtn").text(paddZero(mins) + ":" + paddZero(secs));
- $("#refreshBtn").reload();
- }
- //currentTokenSettings
- }
- function refreshToken(){
- var baseUrl = authPath;
- var s = currentTokenSettings;
- try{
- $.ajax({
- type: "GET",
- url: baseUrl.split("/docs").join("/auth/" + s.sessionToken),
- headers : {
- 'X-Amp-Auth':currentToken
- },
- success: function(data){
- if(typeof data === 'string'){
- data = JSON.parse(data);
- }
- if(data.status == "success"){
- s.sessionToken = data.content.sessionToken;
- var clockDrift = new Date().getTime() - data.content.currentServerTime;
- s.tokenExpires = data.content.permissionExpirationTime + clockDrift;
- setToken(data.content.permissionsToken,data.content.sessionToken, s);
- }
- },
- error: function(data){
- alert("Unable to refreshToken.");
- },
- contentType: 'application/json'
- });
- }catch(e){
- console.log(e);
- }
- }
- function paddZero(input){
- if(input < 10){
- return "0" + input;
- }
- return input.toString();
- }
- function reloadSwaggerDocs(){
- var authToken = $("#input_apiKey").val();
- var token = this.currentToken;
- var docsUrl ;
- if (!new RegExp('\/docs$').test(currentApiPath)){
- currentApiPath = currentApiPath + '/docs';
- }
- docsUrl = currentApiPath;
- var settings = this.currentTokenSettings;
- window.swaggerUi = new SwaggerUi(
- {
- discoveryUrl: currentApiPath,
- apiKey:"",
- apiKeyName: "X-Amp-Auth",
- dom_id:"swagger-ui-container",
- supportHeaderParams: true,
- supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
- onComplete: function(swaggerApi, swaggerUi){
- if(console) {
- console.log("Loaded SwaggerUI")
- console.log(swaggerApi);
- console.log(swaggerUi);
- }
- $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
- },
- onFailure: function(data) {
- if(console) {
- console.log("Unable to Load SwaggerUI");
- console.log(data);
- }
- },
- docExpansion: "none"
- });
- // $("#input_apiKey").val(token);
- window.swaggerUi.load();
- this.currentToken = token;
- this.currentTokenSettings = settings;
- refreshToken();
- }
- function doAuth(){
- var username = $("#username").val();
- var password = $("#passwd").val();
- var baseUrl = currentApiPath;
- try{
- $.ajax({
- type: "POST",
- url: baseUrl.split("/docs").join("/auth"),
- data: JSON.stringify({
- username: username,
- password: password
- }),
- success: function(data){
- if(typeof data === 'string'){
- data = JSON.parse(data);
- }
- if(data.status == "success"){
- var settings = {};
- /** Auto refresh **/
- settings.refresh = true;
- settings.sessionToken = data.content.sessionToken;
- //currentServerTime
- var clockDrift = new Date().getTime() - data.content.currentServerTime;
- settings.tokenExpires = data.content.permissionExpirationTime + clockDrift;
- $("#impersonateBtn").text("Impersonate");
- setToken(data.content.permissionsToken, data.content.sessionToken, settings);
- }
- },
- error: function(data){
- alert("Unable to Get new token.");
- },
- contentType: 'application/json'
- });
- }catch(e){
- console.log(e);
- }
- $('#loginWindow').trigger('close');
- return false;
- }
- function impersonate(){
- var header = $("#impersonationType").val();
- var impersonationValue = $("#impersonationValue").val();
- if(impersonationValue == "" || impersonationValue <= 0){
- alert("Id must not be empty or a negative value.");
- return;
- }
- var baseUrl = $("#input_baseUrl").val();
- var headers = {
- 'X-Amp-Auth':currentToken
- };
- headers[header] = impersonationValue;
- try{
- $.ajax({
- type: "POST",
- url: baseUrl.split("/docs").join("/auth"),
- headers : headers,
- success: function(data){
- if(typeof data === 'string'){
- data = JSON.parse(data);
- }
- if(data.status == "success"){
- var settings = {};
- /** Auto refresh **/
- settings.refresh = true;
- settings.sessionToken = data.content.sessionToken;
- //currentServerTime
- var clockDrift = new Date().getTime() - data.content.currentServerTime;
- settings.tokenExpires = data.content.permissionExpirationTime + clockDrift;
- $("#impersonateBtn").text(header + ":" + impersonationValue);
- setToken(data.content.permissionsToken, data.content.sessionToken, settings);
- }
- },
- error: function(data){
- alert("Unable to Impersonate.");
- },
- contentType: 'application/json'
- });
- }catch(e){
- console.log(e);
- }
- $('#impersonationWindow').trigger('close');
- return false;
- }
- $(function () {
- $('#input_apiKey').change(function() {
- var key = $('#input_apiKey').val();
- if(key && key.trim() != "") {
- window.swaggerUi.options.api_key = key;
- window.swaggerUi.api.api_key = key;
- }
- });
- $('#input_api_refreshKey').change(function() {
- var key = $('#input_api_refreshKey').val();
- if(key && key.trim() != "") {
- window.swaggerUi.options.api_refresh_key = key;
- window.swaggerUi.api.api_refresh_key = key;
- }
- });
- $("#authenticateBtn").click(function(e){
- $('#loginWindow').lightbox_me({
- centered: true,
- onLoad: function() {
- $('#loginWindow').find('input:first').focus()
- }
- });
- e.preventDefault();
- });
- $("#refreshBtn").click(function(e){
- refreshToken();
- });
- $("#impersonateBtn").click(function(e){
- $('#impersonationWindow').lightbox_me({
- centered: true,
- onLoad: function() {
- $('#impersonationWindow').find('input:first').focus()
- }
- });
- e.preventDefault();
- });
- var url = window.location.toString().split("swagger")[0] + "docs";
- window.swaggerUi = new SwaggerUi({
- discoveryUrl: url,
- apiKey:"",
- apiKeyName: "X-Amp-Auth",
- dom_id:"swagger-ui-container",
- supportHeaderParams: true,
- supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
- onComplete: function(swaggerApi, swaggerUi){
- if(console) {
- console.log("Loaded SwaggerUI")
- console.log(swaggerApi);
- console.log(swaggerUi);
- }
- $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
- },
- onFailure: function(data) {
- if(console) {
- console.log("Unable to Load SwaggerUI");
- console.log(data);
- }
- },
- docExpansion: "none"
- });
- $("#moveAPIBtn").click(function(e){
- currentApiPath = $('#input_baseUrl').val();
- reloadSwaggerDocs()
- e.preventDefault();
- });
- var url = window.location.toString().split("swagger")[0] + "docs";
- reloadSwaggerDocs()
- });
- </script>
- </head>
- <body>
- <div id='header'>
- <div class="swagger-ui-wrap">
- <a id="logo"></a>
- <form id='api_selector'>
- <div class='input'id="base_url_descriptor">
- <input id="input_baseUrl" name="baseUrl" type="text"/>
- <p>Docs URL</p>
- </div>
- <div class='input' id="access_token_descriptor">
- <input placeholder="auth_access_token" id="input_apiKey" name="apiKey" type="text"/>
- <p>Access token</p>
- </div>
- <div class='input' id="refresh_token_descriptor">
- <input placeholder="auth_refresh_token" id="input_api_refreshKey" name="apiRefreshKey" type="text"/>
- <p>Refresh token</p>
- </div>
- <!--<div class='input'><a id="moveAPIBtn" href="#">Switch API</a></div>-->
- <div class='input'><a id="authenticateBtn" href="#">Get Token</a></div>
- <div class='input'><a id="refreshBtn" href="#">Refresh</a></div>
- <div class='input'><a id="impersonateBtn" href="#">Impersonate</a></div>
- <!-- <div class='input'><a id="explore" href="#">Explore</a></div> -->
- </form>
- </div>
- </div>
- <div id="message-bar" class="swagger-ui-wrap">
-
- </div>
- <div class="swagger-ui-wrap">
- <a href="status_codes.html" target="_blank">Status Codes</a>
- <br />
- <br />
- </div>
- <div id="swagger-ui-container" class="swagger-ui-wrap">
- </div>
- <div id="loginWindow">
- <div class="modalBody">
- <form action="#" onsubmit="return doAuth();">
- <div class="txt-fld">
- <label for="username">Username</label>
- <input id="username" class="modalInput" name="" type="text" />
- </div>
- <div class="txt-fld">
- <label for="passwd">Password</label>
- <input id="passwd" class="modalInput" name="" type="password" />
- </div>
- <div class="txt-fld">
- <label for="refresh">Refresh Token</label>
- <input id="refresh" class="modalInput" name="" type="checkbox" style="width:auto;" checked="checked">
- </div>
- </div>
- <div class="modalFooter">
- <button type="submit">Login</button>
- </div>
- </form>
- </div>
- <div id="impersonationWindow">
- <div class="modalBody">
- <form action="#" onsubmit="return impersonate();">
- <div class="txt-fld">
- <label for="impersonationType" id="impersonationTypeLabel">Impersonate :</label>
- <select id="impersonationType">
- <option value="X-Amp-User">user</option>
- <option value="X-Amp-Company">company</option>
- </select>
- </div>
- <div class="txt-fld">
- <label for="impersonationValue" id="impersonationValueLabel">Id </label>
- <input id="impersonationValue" class="modalInput" name="" type="number" />
- </div>
- </div>
- <div class="modalFooter">
- <button type="submit">Login</button>
- </div>
- </form>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement