Skip to content

Commit 01e55b1

Browse files
committed
Update: Updating component to work with compact json-ld model
1 parent 6f35dff commit 01e55b1

11 files changed

+5752
-2788
lines changed

api-oauth2-settings-document.html

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ <h4>Authorization scopes</h4>
8484
* @appliesMixin ApiElements.AmfHelperMixin
8585
*/
8686
class ApiOauth2SettingsDocument extends ApiElements.AmfHelperMixin(Polymer.Element) {
87-
static get is() { return 'api-oauth2-settings-document'; }
87+
static get is() {return 'api-oauth2-settings-document';}
8888
static get properties() {
8989
return {
9090
settings: Object,
@@ -127,6 +127,14 @@ <h4>Authorization scopes</h4>
127127
hasScopes: {
128128
type: Array,
129129
computed: '_computeHasArrayValue(scopes)'
130+
},
131+
/**
132+
* Computed value from current `method`. True if the model contains
133+
* custom properties (annotations in RAML).
134+
*/
135+
hasCustomProperties: {
136+
type: Boolean,
137+
computed: '_computeHasCustomProperties(settings)'
130138
}
131139
};
132140
}
@@ -147,7 +155,8 @@ <h4>Authorization scopes</h4>
147155
if (!this._hasProperty(settings, this.ns.raml.vocabularies.security + 'scope')) {
148156
return;
149157
}
150-
const scopes = settings[this.ns.raml.vocabularies.security + 'scope'];
158+
const key = this._getAmfKey(this.ns.raml.vocabularies.security + 'scope');
159+
const scopes = this._ensureArray(settings[key]);
151160
return scopes.map((item) => {
152161
return {
153162
description: this._computeDescription(item),

api-security-documentation.html

Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -45,36 +45,36 @@
4545
<raml-aware raml="{{amfModel}}" scope="[[aware]]"></raml-aware>
4646
</template>
4747
<section class="title">
48-
<h1>[[type]]</h1>
48+
<h1>[[_type]]</h1>
4949
</section>
5050
<template is="dom-if" if="[[hasCustomProperties]]">
5151
<api-annotation-document shape="[[security]]"></api-annotation-document>
5252
</template>
53-
<template is="dom-if" if="[[hasDescription]]">
54-
<marked-element markdown="[[description]]">
53+
<template is="dom-if" if="[[_hasDescription]]">
54+
<marked-element markdown="[[_description]]">
5555
<div slot="markdown-html" class="markdown-body"></div>
5656
</marked-element>
5757
</template>
58-
<template is="dom-if" if="[[hasSettings]]">
59-
<template is="dom-if" if="[[isOauth2Settings]]">
58+
<template is="dom-if" if="[[_hasSettings]]">
59+
<template is="dom-if" if="[[_hasOA2Settings]]">
6060
<h2>Settings</h2>
61-
<api-oauth2-settings-document settings="[[settings]]"></api-oauth2-settings-document>
61+
<api-oauth2-settings-document amf-model="[[amfModel]]" settings="[[_settings]]"></api-oauth2-settings-document>
6262
</template>
63-
<template is="dom-if" if="[[isOauth1Settings]]">
63+
<template is="dom-if" if="[[_hasOA1Settings]]">
6464
<h2>Settings</h2>
65-
<api-oauth1-settings-document settings="[[settings]]"></api-oauth1-settings-document>
65+
<api-oauth1-settings-document amf-model="[[amfModel]]" settings="[[_settings]]"></api-oauth1-settings-document>
6666
</template>
6767
</template>
68-
<template is="dom-if" if="[[hasQueryParameters]]">
69-
<api-parameters-document amf-model="[[amfModel]]" query-opened query-parameters="[[queryParameters]]" narrow="[[narrow]]"></api-parameters-document>
68+
<template is="dom-if" if="[[_hasQueryParameters]]">
69+
<api-parameters-document amf-model="[[amfModel]]" query-opened query-parameters="[[_queryParameters]]" narrow="[[narrow]]"></api-parameters-document>
7070
</template>
71-
<template is="dom-if" if="[[hasHeaders]]">
72-
<api-headers-document opened amf-model="[[amfModel]]" headers="[[headers]]" narrow="[[narrow]]"></api-headers-document>
71+
<template is="dom-if" if="[[_hasHeaders]]">
72+
<api-headers-document opened amf-model="[[amfModel]]" headers="[[_headers]]" narrow="[[narrow]]"></api-headers-document>
7373
</template>
74-
<template is="dom-if" if="[[hasResponses]]">
74+
<template is="dom-if" if="[[_hasResponses]]">
7575
<section class="response-documentation">
7676
<h2>Responses</h2>
77-
<api-responses-document amf-model="[[amfModel]]" returns="[[responses]]" narrow="[[narrow]]"></api-responses-document>
77+
<api-responses-document amf-model="[[amfModel]]" returns="[[_responses]]" narrow="[[narrow]]"></api-responses-document>
7878
</section>
7979
</template>
8080
</template>
@@ -105,7 +105,7 @@ <h2>Responses</h2>
105105
* @appliesMixin ApiElements.AmfHelperMixin
106106
*/
107107
class ApiSecurityDocumentation extends ApiElements.AmfHelperMixin(Polymer.Element) {
108-
static get is() { return 'api-security-documentation'; }
108+
static get is() {return 'api-security-documentation';}
109109
static get properties() {
110110
return {
111111
/**
@@ -119,77 +119,76 @@ <h2>Responses</h2>
119119
* @type {Object}
120120
*/
121121
security: Object,
122+
/**
123+
* Computed value, scheme of the security
124+
*/
125+
_scheme: {type: Object, computed: '_computeScheme(security, amfModel)'},
122126
/**
123127
* Security scheme type.
124128
*/
125-
type: {
129+
_type: {
126130
type: String,
127-
computed: '_computeType(security)'
131+
computed: '_computeType(_scheme)'
128132
},
129133

130-
description: {
134+
_description: {
131135
type: String,
132-
computed: '_computeDescription(security)'
136+
computed: '_computeDescription(_scheme)'
133137
},
134138

135-
hasDescription: {
139+
_hasDescription: {
136140
type: Boolean,
137-
computed: '_computeHasStringValue(description)'
141+
computed: '_computeHasStringValue(_description)'
138142
},
139143

140-
headers: {
144+
_headers: {
141145
type: Array,
142-
computed: '_computeHeaders(security)'
146+
computed: '_computeHeaders(_scheme)'
143147
},
144148

145-
hasHeaders: {
149+
_hasHeaders: {
146150
type: Array,
147-
computed: '_computeHasArrayValue(headers)'
151+
computed: '_computeHasArrayValue(_headers)'
148152
},
149153

150-
queryParameters: {
154+
_queryParameters: {
151155
type: Array,
152-
computed: '_computeQueryParameters(security)'
156+
computed: '_computeQueryParameters(_scheme)'
153157
},
154158

155-
hasQueryParameters: {
159+
_hasQueryParameters: {
156160
type: Array,
157-
computed: '_computeHasArrayValue(queryParameters)'
161+
computed: '_computeHasArrayValue(_queryParameters)'
158162
},
159163

160-
responses: {
164+
_responses: {
161165
type: Array,
162-
computed: '_computeResponses(security)'
166+
computed: '_computeResponses(_scheme)'
163167
},
164168

165-
hasResponses: {
169+
_hasResponses: {
166170
type: Array,
167-
computed: '_computeHasArrayValue(responses)'
171+
computed: '_computeHasArrayValue(_responses)'
168172
},
169173

170-
settings: {
174+
_settings: {
171175
type: Array,
172-
computed: '_computeSettings(security)'
176+
computed: '_computeSettings(_scheme)'
173177
},
174178

175-
hasSettings: {
179+
_hasSettings: {
176180
type: Array,
177-
computed: '_computeHasStringValue(settings)'
178-
},
179-
180-
isOauth2Settings: {
181-
type: Boolean,
182-
computed: '_computeIsOauth2Settings(hasSettings, settings)'
181+
computed: '_computeHasStringValue(_settings)'
183182
},
184183

185-
isOauth1Settings: {
184+
_hasOA2Settings: {
186185
type: Boolean,
187-
computed: '_computeIsOauth1Settings(hasSettings, settings)'
186+
computed: '_computeHasOA2Settings(_hasSettings, _settings)'
188187
},
189188

190-
isCustomSettings: {
189+
_hasOA1Settings: {
191190
type: Boolean,
192-
computed: '_computeIsCustomSettings(hasSettings, isOauth2Settings, isOauth1Settings, settings)'
191+
computed: '_computeHasOA1Settings(_hasSettings, _settings)'
193192
},
194193
/**
195194
* Computed value from current `method`. True if the model contains
@@ -209,6 +208,27 @@ <h2>Responses</h2>
209208
};
210209
}
211210

211+
_computeScheme(security) {
212+
if (!security) {
213+
return;
214+
}
215+
if (security instanceof Array) {
216+
security = security[0];
217+
}
218+
if (this._hasType(security, this.ns.raml.vocabularies.security + 'SecurityScheme')) {
219+
return security;
220+
}
221+
const key = this._getAmfKey(this.ns.raml.vocabularies.security + 'scheme');
222+
let scheme = security[key];
223+
if (!scheme) {
224+
return;
225+
}
226+
if (scheme instanceof Array) {
227+
scheme = scheme[0];
228+
}
229+
return scheme;
230+
}
231+
212232
_computeType(shape) {
213233
return this._getValue(shape, this.ns.raml.vocabularies.security + 'type');
214234
}
@@ -217,35 +237,19 @@ <h2>Responses</h2>
217237
return this._computePropertyObject(shape, this.ns.raml.vocabularies.security + 'settings');
218238
}
219239

220-
_computeIsOauth2Settings(hasSettings, settings) {
240+
_computeHasOA2Settings(hasSettings, settings) {
221241
if (!hasSettings || !settings) {
222242
return false;
223243
}
224244
return this._hasType(settings, this.ns.raml.vocabularies.security + 'OAuth2Settings');
225245
}
226246

227-
_computeIsOauth1Settings(hasSettings, settings) {
247+
_computeHasOA1Settings(hasSettings, settings) {
228248
if (!hasSettings || !settings) {
229249
return false;
230250
}
231251
return this._hasType(settings, this.ns.raml.vocabularies.security + 'OAuth1Settings');
232252
}
233-
234-
_computeIsCustomSettings(hasSettings, isOauth2Settings, isOauth1Settings, settings) {
235-
if (!hasSettings || isOauth1Settings || isOauth2Settings || !settings) {
236-
return false;
237-
}
238-
return this._hasType(settings, this.ns.raml.vocabularies.security + 'Settings');
239-
}
240-
/**
241-
* Computes value for `hasCustomProperties` property.
242-
*
243-
* @param {Object} shape AMF `supportedOperation` model
244-
* @return {Boolean}
245-
*/
246-
_computeHasCustomProperties(shape) {
247-
return !!(shape && (shape && this.ns.raml.vocabularies.document + 'customDomainProperties' in shape));
248-
}
249253
}
250254
window.customElements.define(ApiSecurityDocumentation.is, ApiSecurityDocumentation);
251255
</script>

bower.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,12 @@
3030
"web-component-tester": "Polymer/web-component-tester#^6.0.0",
3131
"webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0",
3232
"api-navigation": "advanced-rest-client/api-navigation#^2.0.0",
33-
"arc-polyfills": "advanced-rest-client/arc-polyfills#^0.1.11"
33+
"arc-polyfills": "advanced-rest-client/arc-polyfills#^0.1.11",
34+
"paper-dropdown-menu": "PolymerElements/paper-dropdown-menu#^2.0.3",
35+
"paper-listbox": "PolymerElements/paper-listbox#^2.0.0",
36+
"paper-item": "PolymerElements/paper-item#^2.1.0",
37+
"web-animations-js": "web-animations/web-animations-js#^2.3",
38+
"api-console-default-theme": "advanced-rest-client/api-console-default-theme#5.0.0-preview"
3439
},
3540
"repository": {
3641
"type": "git",
@@ -43,4 +48,4 @@
4348
"test",
4449
"tasks"
4550
]
46-
}
51+
}

0 commit comments

Comments
 (0)