1 line
4.4 KiB
JavaScript
1 line
4.4 KiB
JavaScript
jQuery(function(e){this.baseUrl="http://swagr.api.wordnik.com/v4/list.json";var f=Spine.Controller.create({proxied:["showApi"],baseUrlList:new Array(),init:function(){if(this.supportsLocalStorage()){var k=localStorage.getItem("com.wordnik.swagger.ui.baseUrls");if(k&&jQuery.trim(k).length>0){this.baseUrlList=k.split(",")}}else{log("local storage not supported, user will need to specifiy the api url")}this.render();e("#button_explore").click(this.showApi)},slapOn:function(){i.showMessage("Please enter a base url for the api that you wish to explore.");e("#resources_container").hide()},supportsLocalStorage:function(){try{return"localStorage" in window&&window.localStorage!==null}catch(k){return false}},render:function(){},showApi:function(){var l=jQuery.trim(e("#input_baseUrl").val());var m=jQuery.trim(e("#input_apiKey").val());if(l.length==0){e("#input_baseUrl").wiggle()}else{var k=a.init({baseUrl:l,apiKey:m})}}});var b=Spine.Controller.create({showMessage:function(k){if(k){e("#content_message").html(k);e("#content_message").show()}else{e("#content_message").html("");e("#content_message").hide()}},clearMessage:function(){this.showMessage()}});var i=b.init();var a=Spine.Controller.create({proxied:["addAll","addOne"],ApiResource:null,init:function(){if(this.baseUrl==null){throw new Error("A baseUrl must be passed to ResourceListController")}e("#content_message").hide();e("#resources_container").hide();e("#resources").html("");e("#api_host_url").html(this.baseUrl);var k=new SwaggerService(this.baseUrl,this.apiKey,function(l){if(l){i.showMessage(l)}else{i.showMessage("Rendering page...")}});k.init();this.ApiResource=k.ApiResource();this.ApiResource.bind("refresh",this.addAll)},addAll:function(){this.ApiResource.each(this.addOne);i.clearMessage();e("#resources_container").slideDown();setTimeout(function(){Docs.shebang()},1000)},addOne:function(k){d.init({item:k,container:"#resources"})}});var d=Spine.Controller.create({proxied:["renderApi","renderOperation"],templateName:"#resourceTemplate",apiResource:null,apiList:null,modelList:null,init:function(){this.render();this.apiResource=this.item;this.apiList=this.apiResource.apiList;this.modelList=this.apiResource.modelList;this.apiList.each(this.renderApi)},render:function(){e(this.templateName).tmpl(this.item).appendTo(this.container)},renderApi:function(l){var k="#"+this.apiResource.name+"_endpoint_list";h.init({item:l,container:k})}});var h=Spine.Controller.create({proxied:["renderOperation"],api:null,templateName:"#apiTemplate",init:function(){this.render();this.api=this.item;this.api.operations.each(this.renderOperation)},render:function(){e(this.templateName).tmpl(this.item).appendTo(this.container)},renderOperation:function(k){var l="#"+this.api.name+"_endpoint_operations";c.init({item:k,container:l})}});var c=Spine.Controller.create({proxied:["submitOperation","showResponse"],operation:null,templateName:"#operationTemplate",elementScope:"#operationTemplate",init:function(){this.render();this.operation=this.item;this.isGetOperation=(this.operation.httpMethodLowercase=="get");this.elementScope="#"+this.operation.apiName+"_"+this.operation.nickname+"_"+this.operation.httpMethod;this.renderParams()},render:function(){e(this.templateName).tmpl(this.item).appendTo(this.container)},renderParams:function(){if(this.operation.parameters&&this.operation.parameters.count()>0){var m=this.elementScope+"_params";for(var n=0;n<this.operation.parameters.count();n++){var o=this.operation.parameters.all()[n];var k="#paramTemplate";if(o.required){k+="Required"}if(!this.isGetOperation){k+="ReadOnly"}e(k).tmpl(o).appendTo(m)}}var l=this.elementScope+"_content_sandbox_response_button";if(this.isGetOperation){e(l).click(this.submitOperation)}else{e(l).hide();var q=this.elementScope+"_value_header";e(q).html("Default Value")}},submitOperation:function(){var m=e(this.elementScope+"_form");var l=true;var k=null;m.find("input.required").each(function(){e(this).removeClass("error");if(e(this).val()==""){if(k==null){k=e(this)}e(this).addClass("error");e(this).wiggle();l=false}});log("error_free = "+l);if(l){var n=this.operation.invocationUrl(m.serializeArray());e.getJSON(n,this.showResponse)}},showResponse:function(k){log(k);var l=JSON.stringify(k,null,"\t");log(l);e(".response_body",this.elementScope+"_content_sandbox_response").html(l);e(this.elementScope+"_content_sandbox_response").slideDown()}});var g=f.init();if(this.baseUrl){var j=a.init({baseUrl:this.baseUrl,apiKey:this.apiKey})}else{g.slapOn()}}); |