(schema, name)
| 5879 | } |
| 5880 | |
| 5881 | function processModel(schema, name) { |
| 5882 | var type = schema.type || 'object'; |
| 5883 | var isArray = schema.type === 'array'; |
| 5884 | var html = strongOpen + name + ' ' + (isArray ? '[' : '{') + strongClose; |
| 5885 | |
| 5886 | if (name) { |
| 5887 | seenModels.push(name); |
| 5888 | } |
| 5889 | |
| 5890 | if (isArray) { |
| 5891 | if (_.isArray(schema.items)) { |
| 5892 | html += '<div>' + _.map(schema.items, function (item) { |
| 5893 | var type = item.type || 'object'; |
| 5894 | |
| 5895 | if (_.isUndefined(item.$ref)) { |
| 5896 | if (_.indexOf(['array', 'object'], type) > -1) { |
| 5897 | if (type === 'object' && _.isUndefined(item.properties)) { |
| 5898 | return 'object'; |
| 5899 | } else { |
| 5900 | return addReference(item); |
| 5901 | } |
| 5902 | } else { |
| 5903 | return primitiveToOptionsHTML(item, type); |
| 5904 | } |
| 5905 | } else { |
| 5906 | return addReference(item, Helpers.simpleRef(item.$ref)); |
| 5907 | } |
| 5908 | }).join(',</div><div>'); |
| 5909 | } else if (_.isPlainObject(schema.items)) { |
| 5910 | if (_.isUndefined(schema.items.$ref)) { |
| 5911 | if (_.indexOf(['array', 'object'], schema.items.type || 'object') > -1) { |
| 5912 | if ((_.isUndefined(schema.items.type) || schema.items.type === 'object') && _.isUndefined(schema.items.properties)) { |
| 5913 | html += '<div>object</div>'; |
| 5914 | } else { |
| 5915 | html += '<div>' + addReference(schema.items) + '</div>'; |
| 5916 | } |
| 5917 | } else { |
| 5918 | html += '<div>' + primitiveToOptionsHTML(schema.items, schema.items.type) + '</div>'; |
| 5919 | } |
| 5920 | } else { |
| 5921 | html += '<div>' + addReference(schema.items, Helpers.simpleRef(schema.items.$ref)) + '</div>'; |
| 5922 | } |
| 5923 | } else { |
| 5924 | Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); |
| 5925 | html += '<div>object</div>'; |
| 5926 | } |
| 5927 | } else { |
| 5928 | if (schema.$ref) { |
| 5929 | html += '<div>' + addReference(schema, name) + '</div>'; |
| 5930 | } else if (type === 'object') { |
| 5931 | if (_.isPlainObject(schema.properties)) { |
| 5932 | var contents = _.map(schema.properties, function (property, name) { |
| 5933 | var propertyIsRequired = (_.indexOf(schema.required, name) >= 0); |
| 5934 | var cProperty = _.cloneDeep(property); |
| 5935 | |
| 5936 | var requiredClass = propertyIsRequired ? 'required' : ''; |
| 5937 | var html = '<span class="propName ' + requiredClass + '">' + name + '</span> ('; |
| 5938 | var model; |
no test coverage detected