updated oauth2 support into a single config

This commit is contained in:
Tony Tam
2014-03-20 15:38:30 -07:00
parent 2edd7ac058
commit 96c14e43a9
6 changed files with 99 additions and 35 deletions

14
dist/index.html vendored
View File

@@ -17,12 +17,9 @@
<script src='swagger-ui.js' type='text/javascript'></script>
<script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
<!--script src='lib/swagger-oauth.js' type='text/javascript'></script-->
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
<script type="text/javascript">
// var clientId = "your-client-id";
// var realm = "your-realm";
$(function () {
window.swaggerUi = new SwaggerUi({
url: "http://petstore.swagger.wordnik.com/api/api-docs",
@@ -30,9 +27,12 @@
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
log("Loaded SwaggerUI");
/*if(typeof initOAuth == "function")
initOAuth();
*/
if(typeof initOAuth == "function")
initOAuth({
clientId: "me",
realm: "realms"
});
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
},
onFailure: function(data) {

View File

@@ -1,10 +1,10 @@
function handleLogin() {
var scopes = [];
var appName = "unknown-app";
var popupMask = $('#api-common-mask');
var popupDialog = $('.api-popup-dialog');
var clientId = "your-client-id";
var realm = "your-realm";
var appName;
var popupMask;
var popupDialog;
var clientId;
var realm;
if(window.swaggerUi.api.authSchemes
&& window.swaggerUi.api.authSchemes.oauth2
@@ -124,7 +124,21 @@ function handleLogout() {
$('.api-ic.ic-warning').removeClass('ic-warning');
}
function initOAuth() {
function initOAuth(opts) {
var o = (opts||{});
var errors = [];
appName = (o.appName||errors.push("missing appName"));
popupMask = (o.popupMask||$('#api-common-mask'));
popupDialog = (o.popupDialog||$('.api-popup-dialog'));
clientId = (o.clientId||errors.push("missing client id"));
realm = (o.realm||errors.push("missing realm"));
if(errors.length > 0){
log("auth unable initialize oauth: " + errors);
return;
}
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
$('.api-ic').click(function(s) {
if($(s.target).hasClass('ic-off'))

19
dist/lib/swagger.js vendored
View File

@@ -1,5 +1,5 @@
// swagger.js
// version 2.0.26
// version 2.0.27
var __bind = function(fn, me){
return function(){
@@ -882,6 +882,21 @@ SwaggerOperation.prototype.pathXml = function() {
return this.path.replace("{format}", "xml");
};
SwaggerOperation.prototype.encodePathParam = function(pathParam) {
var encParts, part, parts, _i, _len;
if (pathParam.indexOf("/") === -1) {
return encodeURIComponent(pathParam);
} else {
parts = pathParam.split("/");
encParts = [];
for (_i = 0, _len = parts.length; _i < _len; _i++) {
part = parts[_i];
encParts.push(encodeURIComponent(part));
}
return encParts.join("/");
}
};
SwaggerOperation.prototype.urlify = function(args) {
var url = this.resource.basePath + this.pathJson();
var params = this.parameters;
@@ -891,7 +906,7 @@ SwaggerOperation.prototype.urlify = function(args) {
if(args[param.name]) {
// apply path params and remove from args
var reg = new RegExp('\{' + param.name + '[^\}]*\}', 'gi');
url = url.replace(reg, encodeURIComponent(args[param.name]));
url = url.replace(reg, this.encodePathParam(args[param.name]));
delete args[param.name];
}
else