fixes #1186 Render primitive types in "Response Class"
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
/*jslint eqeq: true*/
|
|
||||||
|
|
||||||
Handlebars.registerHelper('sanitize', function(html) {
|
Handlebars.registerHelper('sanitize', function(html) {
|
||||||
// Strip the script tags from the html, and return it as a Handlebars.SafeString
|
// Strip the script tags from the html, and return it as a Handlebars.SafeString
|
||||||
@@ -53,6 +52,13 @@ Handlebars.registerHelper('renderTextParam', function(param) {
|
|||||||
return new Handlebars.SafeString(result);
|
return new Handlebars.SafeString(result);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Handlebars.registerHelper('if_or', function(v1, v2, options) {
|
||||||
|
if (v1 || v2) {
|
||||||
|
return options.fn(this);
|
||||||
|
}
|
||||||
|
return options.inverse(this);
|
||||||
|
});
|
||||||
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
|
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
|
||||||
|
|
||||||
switch (operator) {
|
switch (operator) {
|
||||||
|
|||||||
@@ -183,6 +183,10 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
|
|||||||
sampleXML: isXML ? SwaggerUi.partials.signature.createXMLSample(value.definition, value.models) : false,
|
sampleXML: isXML ? SwaggerUi.partials.signature.createXMLSample(value.definition, value.models) : false,
|
||||||
signature: SwaggerUi.partials.signature.getModelSignature(value.name, value.definition, value.models, value.modelPropertyMacro)
|
signature: SwaggerUi.partials.signature.getModelSignature(value.name, value.definition, value.models, value.modelPropertyMacro)
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
signatureModel = {
|
||||||
|
signature: SwaggerUi.partials.signature.getPrimitiveSignature(value)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') {
|
} else if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ SwaggerUi.Views.ParameterView = Backbone.View.extend({
|
|||||||
var modelDefinitions = this.model.modelSignature.definitions;
|
var modelDefinitions = this.model.modelSignature.definitions;
|
||||||
var schema = this.model.schema || {};
|
var schema = this.model.schema || {};
|
||||||
var consumes = this.model.consumes || [];
|
var consumes = this.model.consumes || [];
|
||||||
|
var sampleJSON, signatureView;
|
||||||
|
|
||||||
|
|
||||||
if (typeof type === 'undefined') {
|
if (typeof type === 'undefined') {
|
||||||
@@ -53,20 +54,21 @@ SwaggerUi.Views.ParameterView = Backbone.View.extend({
|
|||||||
|
|
||||||
var isXML = this.contains(consumes, 'xml');
|
var isXML = this.contains(consumes, 'xml');
|
||||||
var isJSON = isXML ? this.contains(consumes, 'json') : true;
|
var isJSON = isXML ? this.contains(consumes, 'json') : true;
|
||||||
|
sampleJSON = SwaggerUi.partials.signature.createParameterJSONSample(modelType, modelDefinitions);
|
||||||
|
|
||||||
var template = this.template();
|
var template = this.template();
|
||||||
$(this.el).html(template(this.model));
|
$(this.el).html(template(this.model));
|
||||||
|
|
||||||
var signatureModel = {
|
var signatureModel = {
|
||||||
sampleJSON: isJSON ? SwaggerUi.partials.signature.createParameterJSONSample(modelType, modelDefinitions) : false,
|
sampleJSON: isJSON ? sampleJSON : false,
|
||||||
sampleXML: isXML ? SwaggerUi.partials.signature.createXMLSample(schema, modelDefinitions, true) : false,
|
sampleXML: sampleJSON && isXML ? SwaggerUi.partials.signature.createXMLSample(schema, modelDefinitions, true) : false,
|
||||||
isParam: true,
|
isParam: true,
|
||||||
signature: SwaggerUi.partials.signature.getParameterModelSignature(modelType, modelDefinitions),
|
signature: SwaggerUi.partials.signature.getParameterModelSignature(modelType, modelDefinitions),
|
||||||
defaultRendering: this.model.defaultRendering
|
defaultRendering: this.model.defaultRendering
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this.model.sampleJSON) {
|
if (sampleJSON) {
|
||||||
var signatureView = new SwaggerUi.Views.SignatureView({model: signatureModel, tagName: 'div'});
|
signatureView = new SwaggerUi.Views.SignatureView({model: signatureModel, tagName: 'div'});
|
||||||
$('.model-signature', $(this.el)).append(signatureView.render().el);
|
$('.model-signature', $(this.el)).append(signatureView.render().el);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -7,23 +7,26 @@ SwaggerUi.Views.StatusCodeView = Backbone.View.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
render: function(){
|
render: function(){
|
||||||
|
var responseModel, responseModelView;
|
||||||
var value = this.router.api.models[this.model.responseModel];
|
var value = this.router.api.models[this.model.responseModel];
|
||||||
$(this.el).html(Handlebars.templates.status_code(this.model));
|
$(this.el).html(Handlebars.templates.status_code(this.model));
|
||||||
|
|
||||||
if (this.router.api.models.hasOwnProperty(this.model.responseModel)) {
|
if (this.router.api.models.hasOwnProperty(this.model.responseModel)) {
|
||||||
var responseModel = {
|
responseModel = {
|
||||||
sampleJSON: JSON.stringify(SwaggerUi.partials.signature.createJSONSample(value), void 0, 2),
|
sampleJSON: JSON.stringify(SwaggerUi.partials.signature.createJSONSample(value), void 0, 2),
|
||||||
sampleXML: this.model.isXML ? SwaggerUi.partials.signature.createXMLSample(this.model.schema, value.models) : false,
|
sampleXML: this.model.isXML ? SwaggerUi.partials.signature.createXMLSample(this.model.schema, this.router.api.models) : false,
|
||||||
isParam: false,
|
isParam: false,
|
||||||
signature: SwaggerUi.partials.signature.getModelSignature(this.model.responseModel, value, this.router.api.models),
|
signature: SwaggerUi.partials.signature.getModelSignature(this.model.responseModel, value, this.router.api.models),
|
||||||
defaultRendering: this.model.defaultRendering
|
defaultRendering: this.model.defaultRendering
|
||||||
};
|
};
|
||||||
|
|
||||||
var responseModelView = new SwaggerUi.Views.SignatureView({model: responseModel, tagName: 'div'});
|
|
||||||
$('.model-signature', this.$el).append(responseModelView.render().el);
|
|
||||||
} else {
|
} else {
|
||||||
$('.model-signature', this.$el).html('');
|
responseModel = {
|
||||||
|
signature: SwaggerUi.partials.signature.getPrimitiveSignature(this.model.schema)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
responseModelView = new SwaggerUi.Views.SignatureView({model: responseModel, tagName: 'div'});
|
||||||
|
$('.model-signature', this.$el).append(responseModelView.render().el);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -736,6 +736,20 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
return value;
|
return value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var getPrimitiveSignature = function (schema) {
|
||||||
|
var type, items;
|
||||||
|
|
||||||
|
schema = schema || {};
|
||||||
|
items = schema.items || {};
|
||||||
|
type = schema.type || '';
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case 'object': return 'Object is not a primitive';
|
||||||
|
case 'array' : return 'Array[' + items.type + ']';
|
||||||
|
default: return type;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var createPrimitiveXML = function (descriptor) {
|
var createPrimitiveXML = function (descriptor) {
|
||||||
var name = descriptor.name;
|
var name = descriptor.name;
|
||||||
var definition = descriptor.definition;
|
var definition = descriptor.definition;
|
||||||
@@ -924,7 +938,8 @@ SwaggerUi.partials.signature = (function () {
|
|||||||
getParameterModelSignature: getParameterModelSignature,
|
getParameterModelSignature: getParameterModelSignature,
|
||||||
createParameterJSONSample: createParameterJSONSample,
|
createParameterJSONSample: createParameterJSONSample,
|
||||||
createSchemaXML: createSchemaXML,
|
createSchemaXML: createSchemaXML,
|
||||||
createXMLSample: createXMLSample
|
createXMLSample: createXMLSample,
|
||||||
|
getPrimitiveSignature: getPrimitiveSignature
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
{{#if_or sampleJSON sampleXML}}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ul class="signature-nav">
|
<ul class="signature-nav">
|
||||||
<li><a class="description-link" href="#" data-sw-translate>Model</a></li>
|
<li><a class="description-link" href="#" data-sw-translate>Model</a></li>
|
||||||
@@ -25,3 +27,6 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{else}}
|
||||||
|
{{signature}}
|
||||||
|
{{/if_or}}
|
||||||
Reference in New Issue
Block a user