fixed enum, required flags

This commit is contained in:
Tony Tam
2013-08-14 16:49:08 -07:00
parent f29d53d5bc
commit 888db09fd8
7 changed files with 211 additions and 144 deletions

38
dist/lib/swagger.js vendored
View File

@@ -385,10 +385,17 @@
SwaggerModel = (function() {
function SwaggerModel(modelName, obj) {
var propertyName;
var propertyName, value;
this.name = obj.id != null ? obj.id : modelName;
this.properties = [];
for (propertyName in obj.properties) {
if (obj["enum"] != null) {
for (value in obj["enum"]) {
if (propertyName === value) {
obj.properties[propertyName].required = true;
}
}
}
this.properties.push(new SwaggerModelProperty(propertyName, obj.properties[propertyName]));
}
}
@@ -464,6 +471,7 @@
this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
this.descr = obj.description;
this.required = obj.required;
console.log(this);
if (obj.items != null) {
if (obj.items.type != null) {
this.refDataType = obj.items.type;
@@ -524,7 +532,7 @@
SwaggerOperation = (function() {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces) {
var parameter, v, _i, _j, _len, _len1, _ref, _ref1, _ref2,
var parameter, v, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3,
_this = this;
this.nickname = nickname;
this.path = path;
@@ -572,6 +580,26 @@
}
parameter.signature = this.getSignature(type, this.resource.models);
parameter.sampleJSON = this.getSampleJSON(type, this.resource.models);
if (parameter["enum"] != null) {
parameter.isList = true;
parameter.allowableValues = {};
parameter.allowableValues.descriptiveValues = [];
_ref2 = parameter["enum"];
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
v = _ref2[_j];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,
isDefault: true
});
} else {
parameter.allowableValues.descriptiveValues.push({
value: v,
isDefault: false
});
}
}
}
if (parameter.allowableValues != null) {
if (parameter.allowableValues.valueType === "RANGE") {
parameter.isRange = true;
@@ -580,9 +608,9 @@
}
if (parameter.allowableValues.values != null) {
parameter.allowableValues.descriptiveValues = [];
_ref2 = parameter.allowableValues.values;
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
v = _ref2[_j];
_ref3 = parameter.allowableValues.values;
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
v = _ref3[_k];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,

9
dist/swagger-ui.js vendored
View File

@@ -1515,7 +1515,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
};
OperationView.prototype.submitOperation = function(e) {
var error_free, form, map, o, opts, _i, _j, _len, _len1, _ref, _ref1;
var error_free, form, map, o, opts, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
if (e != null) {
e.preventDefault();
}
@@ -1553,6 +1553,13 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
map["body"] = o.value;
}
}
_ref2 = form.find("select");
for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
o = _ref2[_k];
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
map[o.name] = o.value;
}
}
opts.responseContentType = $("div select[name=responseContentType]", $(this.el)).val();
opts.requestContentType = $("div select[name=parameterContentType]", $(this.el)).val();
return this.model["do"](map, opts, this.showCompleteStatus, this.showErrorStatus, this);

File diff suppressed because one or more lines are too long

View File

@@ -385,10 +385,17 @@
SwaggerModel = (function() {
function SwaggerModel(modelName, obj) {
var propertyName;
var propertyName, value;
this.name = obj.id != null ? obj.id : modelName;
this.properties = [];
for (propertyName in obj.properties) {
if (obj["enum"] != null) {
for (value in obj["enum"]) {
if (propertyName === value) {
obj.properties[propertyName].required = true;
}
}
}
this.properties.push(new SwaggerModelProperty(propertyName, obj.properties[propertyName]));
}
}
@@ -464,6 +471,7 @@
this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
this.descr = obj.description;
this.required = obj.required;
console.log(this);
if (obj.items != null) {
if (obj.items.type != null) {
this.refDataType = obj.items.type;
@@ -524,7 +532,7 @@
SwaggerOperation = (function() {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces) {
var parameter, v, _i, _j, _len, _len1, _ref, _ref1, _ref2,
var parameter, v, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3,
_this = this;
this.nickname = nickname;
this.path = path;
@@ -572,6 +580,26 @@
}
parameter.signature = this.getSignature(type, this.resource.models);
parameter.sampleJSON = this.getSampleJSON(type, this.resource.models);
if (parameter["enum"] != null) {
parameter.isList = true;
parameter.allowableValues = {};
parameter.allowableValues.descriptiveValues = [];
_ref2 = parameter["enum"];
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
v = _ref2[_j];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,
isDefault: true
});
} else {
parameter.allowableValues.descriptiveValues.push({
value: v,
isDefault: false
});
}
}
}
if (parameter.allowableValues != null) {
if (parameter.allowableValues.valueType === "RANGE") {
parameter.isRange = true;
@@ -580,9 +608,9 @@
}
if (parameter.allowableValues.values != null) {
parameter.allowableValues.descriptiveValues = [];
_ref2 = parameter.allowableValues.values;
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
v = _ref2[_j];
_ref3 = parameter.allowableValues.values;
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
v = _ref3[_k];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,

View File

@@ -89,6 +89,10 @@ class OperationView extends Backbone.View
if(o.value? && jQuery.trim(o.value).length > 0)
map["body"] = o.value
for o in form.find("select")
if(o.value? && jQuery.trim(o.value).length > 0)
map[o.name] = o.value
opts.responseContentType = $("div select[name=responseContentType]", $(@el)).val()
opts.requestContentType = $("div select[name=parameterContentType]", $(@el)).val()