Skip to content

Commit 7742ee9

Browse files
authored
Merge pull request #359 from pritambaral/body-typedoc
Show type documentation for non-native types in the request body too
2 parents 6430218 + be23aba commit 7742ee9

File tree

4 files changed

+126
-2
lines changed

4 files changed

+126
-2
lines changed

dist/scripts/api-console.js

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2642,6 +2642,11 @@
26422642

26432643
$scope.cleanupTypeName = RAML.Inspector.Types.cleanupTypeName;
26442644

2645+
$scope.typeDocumentation = function(type) {
2646+
type = RAML.Inspector.Types.findType(type.type[0], $rootScope.types);
2647+
return RAML.Inspector.Types.typeDocumentation(type);
2648+
};
2649+
26452650
$scope.getSupertTypes = function (type) {
26462651
return RAML.Inspector.Types.findType(type.type[0], $rootScope.types).type.map(function (aTypeName) {
26472652
return aTypeName;
@@ -4424,6 +4429,61 @@ RAML.Inspector = (function() {
44244429
return Array.isArray(type) ? type : [type];
44254430
}
44264431

4432+
function typeDocumentation(type) {
4433+
var result = [];
4434+
4435+
if (type.minItems) {
4436+
result.push('minItems: ' + type.minItems);
4437+
}
4438+
4439+
if (type.maxItems) {
4440+
result.push('maxItems: ' + type.maxItems);
4441+
}
4442+
4443+
if (type['enum']) {
4444+
var enumValues = type['enum'];
4445+
var enumDescription = '';
4446+
4447+
if (enumValues.length > 1) {
4448+
enumDescription += 'one of ';
4449+
}
4450+
4451+
enumDescription += '(' + enumValues.filter(function (value) { return value !== ''; }).join(', ') + ')';
4452+
4453+
result.push(enumDescription);
4454+
}
4455+
4456+
if (type.pattern) {
4457+
result.push('pattern: ' + type.pattern);
4458+
}
4459+
4460+
if (type.minLength) {
4461+
result.push('minLength: ' + type.minLength);
4462+
}
4463+
4464+
if (type.maxLength) {
4465+
result.push('maxLength: ' + type.maxLength);
4466+
}
4467+
4468+
if (type.minimum) {
4469+
result.push('minimum: ' + type.minimum);
4470+
}
4471+
4472+
if (type.format) {
4473+
result.push('format: ' + type.format);
4474+
}
4475+
4476+
if (type.multipleOf) {
4477+
result.push('multipleOf: ' + type.multipleOf);
4478+
}
4479+
4480+
if (type.fileTypes) {
4481+
result.push('fileTypes: ' + type.fileTypes.join(', '));
4482+
}
4483+
4484+
return result.join(', ');
4485+
}
4486+
44274487
RAML.Inspector.Types = {
44284488
mergeType: mergeType,
44294489
isNativeType: isNativeType,
@@ -4433,7 +4493,8 @@ RAML.Inspector = (function() {
44334493
getTypeInfo: getTypeInfo,
44344494
getTypeFromTypeInfo: getTypeFromTypeInfo,
44354495
ensureArray: ensureArray,
4436-
cleanupTypeName: cleanupTypeName
4496+
cleanupTypeName: cleanupTypeName,
4497+
typeDocumentation: typeDocumentation
44374498
};
44384499
})();
44394500

@@ -7468,6 +7529,7 @@ angular.module('ramlConsoleApp').run(['$templateCache', function($templateCache)
74687529
"<div ng-if=\"selectedType\" class=\"raml-console-type-info-popover\">\n" +
74697530
" <h3>\n" +
74707531
" <span>{{selectedType.displayName}}</span>\n" +
7532+
" <span class=\"raml-console-resource-param-instructional\">{{typeDocumentation(selectedType)}}</span>\n" +
74717533
" <div class=\"raml-console-subtitle\">\n" +
74727534
" <span ng-repeat-start=\"superType in getSupertTypes(selectedType)\">{{superType}}</span>\n" +
74737535
" <span ng-if=\"!$last\" ng-repeat-end>, </span>\n" +

src/app/directives/type.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828

2929
$scope.cleanupTypeName = RAML.Inspector.Types.cleanupTypeName;
3030

31+
$scope.typeDocumentation = function(type) {
32+
type = RAML.Inspector.Types.findType(type.type[0], $rootScope.types);
33+
return RAML.Inspector.Types.typeDocumentation(type);
34+
};
35+
3136
$scope.getSupertTypes = function (type) {
3237
return RAML.Inspector.Types.findType(type.type[0], $rootScope.types).type.map(function (aTypeName) {
3338
return aTypeName;

src/app/directives/type.tpl.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<div ng-if="selectedType" class="raml-console-type-info-popover">
1010
<h3>
1111
<span>{{selectedType.displayName}}</span>
12+
<span class="raml-console-resource-param-instructional">{{typeDocumentation(selectedType)}}</span>
1213
<div class="raml-console-subtitle">
1314
<span ng-repeat-start="superType in getSupertTypes(selectedType)">{{superType}}</span>
1415
<span ng-if="!$last" ng-repeat-end>, </span>

src/common/inspector/types.js

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,61 @@
154154
return Array.isArray(type) ? type : [type];
155155
}
156156

157+
function typeDocumentation(type) {
158+
var result = [];
159+
160+
if (type.minItems) {
161+
result.push('minItems: ' + type.minItems);
162+
}
163+
164+
if (type.maxItems) {
165+
result.push('maxItems: ' + type.maxItems);
166+
}
167+
168+
if (type['enum']) {
169+
var enumValues = type['enum'];
170+
var enumDescription = '';
171+
172+
if (enumValues.length > 1) {
173+
enumDescription += 'one of ';
174+
}
175+
176+
enumDescription += '(' + enumValues.filter(function (value) { return value !== ''; }).join(', ') + ')';
177+
178+
result.push(enumDescription);
179+
}
180+
181+
if (type.pattern) {
182+
result.push('pattern: ' + type.pattern);
183+
}
184+
185+
if (type.minLength) {
186+
result.push('minLength: ' + type.minLength);
187+
}
188+
189+
if (type.maxLength) {
190+
result.push('maxLength: ' + type.maxLength);
191+
}
192+
193+
if (type.minimum) {
194+
result.push('minimum: ' + type.minimum);
195+
}
196+
197+
if (type.format) {
198+
result.push('format: ' + type.format);
199+
}
200+
201+
if (type.multipleOf) {
202+
result.push('multipleOf: ' + type.multipleOf);
203+
}
204+
205+
if (type.fileTypes) {
206+
result.push('fileTypes: ' + type.fileTypes.join(', '));
207+
}
208+
209+
return result.join(', ');
210+
}
211+
157212
RAML.Inspector.Types = {
158213
mergeType: mergeType,
159214
isNativeType: isNativeType,
@@ -163,6 +218,7 @@
163218
getTypeInfo: getTypeInfo,
164219
getTypeFromTypeInfo: getTypeFromTypeInfo,
165220
ensureArray: ensureArray,
166-
cleanupTypeName: cleanupTypeName
221+
cleanupTypeName: cleanupTypeName,
222+
typeDocumentation: typeDocumentation
167223
};
168224
})();

0 commit comments

Comments
 (0)