Skip to content

Commit a8a4531

Browse files
Travis Paynepetermetz
Travis Payne
authored andcommitted
fix(connector-corda): container image kotlin compilation fails in model
Upgrades the OpenAPI generator to v5.1.1 which now requires that the Configuration class instance to be passed in to the API clients that are generated instead of just a JS object literal (POJO). This version of OAG also changes how the enums are named in Typescript so they are no longer fully uppercase so there are a lot of small-ish code changes in the test cases that are mostly all tied to this. Signed-off-by: Travis Payne <[email protected]> Signed-off-by: Peter Somogyvari <[email protected]>
1 parent e8708a6 commit a8a4531

File tree

179 files changed

+3766
-1475
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+3766
-1475
lines changed

examples/cactus-example-carbon-accounting-backend/src/main/typescript/carbon-accounting-app.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
import {
1818
ApiServer,
1919
ConfigService,
20+
Configuration,
2021
ICactusApiServerOptions,
2122
} from "@hyperledger/cactus-cmd-api-server";
2223

@@ -126,8 +127,10 @@ export class CarbonAccountingApp {
126127
const addressInfo = httpApi.address() as AddressInfo;
127128
const nodeApiHost = `http://localhost:${addressInfo.port}`;
128129

129-
const xdaiApiClient = new XdaiApi({ basePath: nodeApiHost });
130-
const fabricApiClient = new FabricApi({ basePath: nodeApiHost });
130+
const config = new Configuration({ basePath: nodeApiHost });
131+
132+
const xdaiApiClient = new XdaiApi(config);
133+
const fabricApiClient = new FabricApi(config);
131134

132135
this.log.info(`Configuring Cactus Node for Ledger A...`);
133136
const rpcApiHostA = await this.ledgers.xdai.getRpcApiHttpHost();
@@ -151,7 +154,7 @@ export class CarbonAccountingApp {
151154
asLocalhost: true,
152155
},
153156
eventHandlerOptions: {
154-
strategy: DefaultEventHandlerStrategy.NETWORKSCOPEALLFORTX,
157+
strategy: DefaultEventHandlerStrategy.NetworkScopeAllfortx,
155158
commitTimeout: 300,
156159
},
157160
});
@@ -186,7 +189,7 @@ export class CarbonAccountingApp {
186189
web3SigningCredential: {
187190
keychainEntryKey: xdaiAccount.address,
188191
keychainId: this.keychainId,
189-
type: Web3SigningCredentialType.CACTUSKEYCHAINREF,
192+
type: Web3SigningCredentialType.CactusKeychainRef,
190193
},
191194
});
192195

examples/cactus-example-carbon-accounting-backend/src/main/typescript/infrastructure/carbon-accounting-app-dummy-infrastructure.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ export class CarbonAccountingAppDummyInfrastructure {
388388
web3SigningCredential: {
389389
ethAccount: this.xdaiAccount.get().address,
390390
secret: this.xdaiAccount.get().privateKey,
391-
type: Web3SigningCredentialType.PRIVATEKEYHEX,
391+
type: Web3SigningCredentialType.PrivateKeyHex,
392392
},
393393
});
394394
const {
@@ -427,7 +427,7 @@ export class CarbonAccountingAppDummyInfrastructure {
427427
web3SigningCredential: {
428428
ethAccount: this.xdaiAccount.get().address,
429429
secret: this.xdaiAccount.get().privateKey,
430-
type: Web3SigningCredentialType.PRIVATEKEYHEX,
430+
type: Web3SigningCredentialType.PrivateKeyHex,
431431
},
432432
});
433433
const {
@@ -460,7 +460,7 @@ export class CarbonAccountingAppDummyInfrastructure {
460460
web3SigningCredential: {
461461
ethAccount: this.xdaiAccount.get().address,
462462
secret: this.xdaiAccount.get().privateKey,
463-
type: Web3SigningCredentialType.PRIVATEKEYHEX,
463+
type: Web3SigningCredentialType.PrivateKeyHex,
464464
},
465465
});
466466
const {
@@ -496,7 +496,7 @@ export class CarbonAccountingAppDummyInfrastructure {
496496
web3SigningCredential: {
497497
ethAccount: this.xdaiAccount.get().address,
498498
secret: this.xdaiAccount.get().privateKey,
499-
type: Web3SigningCredentialType.PRIVATEKEYHEX,
499+
type: Web3SigningCredentialType.PrivateKeyHex,
500500
},
501501
});
502502
const {

examples/cactus-example-carbon-accounting-backend/src/test/typescript/integration/admin-enroll-v1-endpoint.test.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { StatusCodes } from "http-status-codes";
99
import {
1010
AuthorizationProtocol,
1111
ConfigService,
12+
Configuration,
1213
IAuthorizationConfig,
1314
} from "@hyperledger/cactus-cmd-api-server";
1415

@@ -118,7 +119,7 @@ test(testCase, async (t: Test) => {
118119
const verification = JWT.verify(tokenWithScope, jwtKeyPair, jwtSignOptions);
119120
t.ok(verification, "JWT with scope verification truthy OK");
120121

121-
const apiClient = new CarbonAccountingApi({
122+
const configTokenWithScope = new Configuration({
122123
basePath: apiBaseUrl,
123124
baseOptions: {
124125
headers: {
@@ -127,6 +128,8 @@ test(testCase, async (t: Test) => {
127128
},
128129
});
129130

131+
const apiClient = new CarbonAccountingApi(configTokenWithScope);
132+
130133
const res = await apiClient.enrollAdminV1({
131134
orgName: "Org1MSP",
132135
});
@@ -136,7 +139,7 @@ test(testCase, async (t: Test) => {
136139

137140
const tokenNoScope = JWT.sign({ scope: [] }, jwtKeyPair, jwtSignOptions);
138141

139-
const apiClientBad = new CarbonAccountingApi({
142+
const configTokenWithoutScope = new Configuration({
140143
basePath: apiBaseUrl,
141144
baseOptions: {
142145
headers: {
@@ -145,6 +148,8 @@ test(testCase, async (t: Test) => {
145148
},
146149
});
147150

151+
const apiClientBad = new CarbonAccountingApi(configTokenWithoutScope);
152+
148153
try {
149154
await apiClientBad.enrollAdminV1({ orgName: "does-not-matter" });
150155
t.fail("enroll admin response status === 403 FAIL");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
3+
"spaces": 2,
4+
"generator-cli": {
5+
"version": "5.1.1"
6+
}
7+
}

examples/cactus-example-carbon-accounting-business-logic-plugin/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"dist/*"
1313
],
1414
"scripts": {
15-
"generate-sdk": "docker run --rm -v \"${PWD}:/local\" openapitools/openapi-generator-cli:v5.0.0-beta2 generate -i ./local/src/main/json/openapi.json -g typescript-axios -o ./local/src/main/typescript/generated/openapi/typescript-axios --reserved-words-mappings protected=protected",
15+
"generate-sdk": "docker run --rm -v \"${PWD}:/local\" openapitools/openapi-generator-cli:v5.1.1 generate -i ./local/src/main/json/openapi.json -g typescript-axios -o ./local/src/main/typescript/generated/openapi/typescript-axios --reserved-words-mappings protected=protected",
1616
"tsc": "tsc --project ./tsconfig.json",
1717
"pretsc": "npm run generate-sdk",
1818
"watch": "npm-watch",
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
api.ts
22
base.ts
3+
common.ts
34
configuration.ts
45
index.ts
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.0.0-beta2
1+
5.1.1

examples/cactus-example-carbon-accounting-business-logic-plugin/src/main/typescript/generated/openapi/typescript-axios/api.ts

+29-36
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import { Configuration } from './configuration';
1717
import globalAxios, { AxiosPromise, AxiosInstance } from 'axios';
1818
// Some imports not used depending on template conditions
1919
// @ts-ignore
20+
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
21+
// @ts-ignore
2022
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';
2123

2224
/**
@@ -25,6 +27,9 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
2527
* @enum {string}
2628
*/
2729
export enum AuthzJwtClaim {
30+
/**
31+
* The &quot;iss&quot; (issuer) claim identifies the principal that issued the JWT. The processing of this claim is generally application specific. The &quot;iss&quot; value is a case-sensitive string containing a StringOrURI value. Use of this claim is OPTIONAL.
32+
*/
2833
iss = 'Hyperledger Labs - Carbon Accounting Tool'
2934
}
3035

@@ -34,7 +39,13 @@ export enum AuthzJwtClaim {
3439
* @enum {string}
3540
*/
3641
export enum AuthzScope {
42+
/**
43+
* Identities with the group:admin scope are administrators of the system.
44+
*/
3745
GroupAdmin = 'group:admin',
46+
/**
47+
* Identities with the group:user scope are end users of the system who only have authorization to perform a limited set of actions.
48+
*/
3849
GroupUser = 'group:user'
3950
}
4051

@@ -185,11 +196,12 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
185196
daoTokenGetAllowance: async (daoTokenGetAllowanceRequest?: DaoTokenGetAllowanceRequest, options: any = {}): Promise<RequestArgs> => {
186197
const localVarPath = `/api/v1/plugins/@hyperledger/cactus-example-carbon-accounting-backend/dao-token/get-allowance`;
187198
// use dummy base URL string because the URL constructor only accepts absolute URLs.
188-
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
199+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
189200
let baseOptions;
190201
if (configuration) {
191202
baseOptions = configuration.baseOptions;
192203
}
204+
193205
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
194206
const localVarHeaderParameter = {} as any;
195207
const localVarQueryParameter = {} as any;
@@ -198,21 +210,13 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
198210

199211
localVarHeaderParameter['Content-Type'] = 'application/json';
200212

201-
const query = new URLSearchParams(localVarUrlObj.search);
202-
for (const key in localVarQueryParameter) {
203-
query.set(key, localVarQueryParameter[key]);
204-
}
205-
for (const key in options.query) {
206-
query.set(key, options.query[key]);
207-
}
208-
localVarUrlObj.search = (new URLSearchParams(query)).toString();
213+
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
209214
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
210215
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
211-
const needsSerialization = (typeof daoTokenGetAllowanceRequest !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
212-
localVarRequestOptions.data = needsSerialization ? JSON.stringify(daoTokenGetAllowanceRequest !== undefined ? daoTokenGetAllowanceRequest : {}) : (daoTokenGetAllowanceRequest || "");
216+
localVarRequestOptions.data = serializeDataIfNeeded(daoTokenGetAllowanceRequest, localVarRequestOptions, configuration)
213217

214218
return {
215-
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
219+
url: toPathString(localVarUrlObj),
216220
options: localVarRequestOptions,
217221
};
218222
},
@@ -226,11 +230,12 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
226230
enrollAdminV1: async (enrollAdminV1Request?: EnrollAdminV1Request, options: any = {}): Promise<RequestArgs> => {
227231
const localVarPath = `/api/v1/utilityemissionchannel/registerEnroll/admin`;
228232
// use dummy base URL string because the URL constructor only accepts absolute URLs.
229-
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
233+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
230234
let baseOptions;
231235
if (configuration) {
232236
baseOptions = configuration.baseOptions;
233237
}
238+
234239
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
235240
const localVarHeaderParameter = {} as any;
236241
const localVarQueryParameter = {} as any;
@@ -239,21 +244,13 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
239244

240245
localVarHeaderParameter['Content-Type'] = 'application/json';
241246

242-
const query = new URLSearchParams(localVarUrlObj.search);
243-
for (const key in localVarQueryParameter) {
244-
query.set(key, localVarQueryParameter[key]);
245-
}
246-
for (const key in options.query) {
247-
query.set(key, options.query[key]);
248-
}
249-
localVarUrlObj.search = (new URLSearchParams(query)).toString();
247+
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
250248
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
251249
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
252-
const needsSerialization = (typeof enrollAdminV1Request !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
253-
localVarRequestOptions.data = needsSerialization ? JSON.stringify(enrollAdminV1Request !== undefined ? enrollAdminV1Request : {}) : (enrollAdminV1Request || "");
250+
localVarRequestOptions.data = serializeDataIfNeeded(enrollAdminV1Request, localVarRequestOptions, configuration)
254251

255252
return {
256-
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
253+
url: toPathString(localVarUrlObj),
257254
options: localVarRequestOptions,
258255
};
259256
},
@@ -265,6 +262,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
265262
* @export
266263
*/
267264
export const DefaultApiFp = function(configuration?: Configuration) {
265+
const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration)
268266
return {
269267
/**
270268
*
@@ -274,11 +272,8 @@ export const DefaultApiFp = function(configuration?: Configuration) {
274272
* @throws {RequiredError}
275273
*/
276274
async daoTokenGetAllowance(daoTokenGetAllowanceRequest?: DaoTokenGetAllowanceRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DaoTokenGetAllowanceResponse>> {
277-
const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).daoTokenGetAllowance(daoTokenGetAllowanceRequest, options);
278-
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
279-
const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
280-
return axios.request(axiosRequestArgs);
281-
};
275+
const localVarAxiosArgs = await localVarAxiosParamCreator.daoTokenGetAllowance(daoTokenGetAllowanceRequest, options);
276+
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
282277
},
283278
/**
284279
*
@@ -288,11 +283,8 @@ export const DefaultApiFp = function(configuration?: Configuration) {
288283
* @throws {RequiredError}
289284
*/
290285
async enrollAdminV1(enrollAdminV1Request?: EnrollAdminV1Request, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EnrollAdminV1Response>> {
291-
const localVarAxiosArgs = await DefaultApiAxiosParamCreator(configuration).enrollAdminV1(enrollAdminV1Request, options);
292-
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
293-
const axiosRequestArgs = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
294-
return axios.request(axiosRequestArgs);
295-
};
286+
const localVarAxiosArgs = await localVarAxiosParamCreator.enrollAdminV1(enrollAdminV1Request, options);
287+
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
296288
},
297289
}
298290
};
@@ -302,6 +294,7 @@ export const DefaultApiFp = function(configuration?: Configuration) {
302294
* @export
303295
*/
304296
export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
297+
const localVarFp = DefaultApiFp(configuration)
305298
return {
306299
/**
307300
*
@@ -311,7 +304,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
311304
* @throws {RequiredError}
312305
*/
313306
daoTokenGetAllowance(daoTokenGetAllowanceRequest?: DaoTokenGetAllowanceRequest, options?: any): AxiosPromise<DaoTokenGetAllowanceResponse> {
314-
return DefaultApiFp(configuration).daoTokenGetAllowance(daoTokenGetAllowanceRequest, options).then((request) => request(axios, basePath));
307+
return localVarFp.daoTokenGetAllowance(daoTokenGetAllowanceRequest, options).then((request) => request(axios, basePath));
315308
},
316309
/**
317310
*
@@ -321,7 +314,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
321314
* @throws {RequiredError}
322315
*/
323316
enrollAdminV1(enrollAdminV1Request?: EnrollAdminV1Request, options?: any): AxiosPromise<EnrollAdminV1Response> {
324-
return DefaultApiFp(configuration).enrollAdminV1(enrollAdminV1Request, options).then((request) => request(axios, basePath));
317+
return localVarFp.enrollAdminV1(enrollAdminV1Request, options).then((request) => request(axios, basePath));
325318
},
326319
};
327320
};

0 commit comments

Comments
 (0)