From e1f13267dd219d4f5eb862b132ff5158fc17a437 Mon Sep 17 00:00:00 2001 From: Benedikt Heinrichs <heinrichs@itc.rwth-aachen.de> Date: Tue, 5 Dec 2023 12:32:05 +0100 Subject: [PATCH] BREAKING: ApiV2 & Updated api-client --- src/CodeGen/CodeGenerator/CodeGenerator.cs | 5 ++++ .../CodeGenerator/CoscineCodeGenerator.cs | 25 +++++++++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/CodeGen/CodeGenerator/CodeGenerator.cs b/src/CodeGen/CodeGenerator/CodeGenerator.cs index 97d952b..08018aa 100644 --- a/src/CodeGen/CodeGenerator/CodeGenerator.cs +++ b/src/CodeGen/CodeGenerator/CodeGenerator.cs @@ -71,6 +71,11 @@ public abstract class CodeGenerator var apiContent = File.ReadAllText($"./{outputPath}/{directoryName}/api.ts"); + foreach (var apiFile in Directory.GetFiles($"./{outputPath}/{directoryName}/@coscine/api/")) + { + apiContent += File.ReadAllText(apiFile); + } + var apiImplementations = apiRegex.Matches(apiContent); var customBasePath = await GetCustomBasePath(directoryName); diff --git a/src/CodeGen/CodeGenerator/CoscineCodeGenerator.cs b/src/CodeGen/CodeGenerator/CoscineCodeGenerator.cs index aa23649..5dfb823 100644 --- a/src/CodeGen/CodeGenerator/CoscineCodeGenerator.cs +++ b/src/CodeGen/CodeGenerator/CoscineCodeGenerator.cs @@ -19,7 +19,7 @@ public class CoscineCodeGenerator : CodeGenerator public async override Task<string> GetClientGenerator() { - var jarDownloadLink = await _configuration.GetStringAsync("coscine/local/codegen/jarlink", "https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.2.1/openapi-generator-cli-5.2.1.jar"); + var jarDownloadLink = await _configuration.GetStringAsync("coscine/local/codegen/jarlink", "https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.1.0/openapi-generator-cli-7.1.0.jar"); using var httpClient = new HttpClient(); var jarFileName = await _configuration.GetStringAsync("coscine/local/codegen/jarpath", "./codegen.jar"); @@ -40,7 +40,10 @@ public class CoscineCodeGenerator : CodeGenerator var apiPrefix = "coscine/apis/"; var keys = await _configuration.KeysAsync(apiPrefix); - return keys.Select((entry) => entry.Split('/')[2]).Distinct(); + return keys.Select((entry) => entry.Split('/')[2]).Distinct().Where(x => + x == "Coscine.Api" + || x == "Coscine.Api.STS" + ); } internal async override Task<string> GetOutputPath() @@ -50,17 +53,26 @@ public class CoscineCodeGenerator : CodeGenerator internal override Task<string> GetSwaggerUrl(string domainName, string hostName, string key) { + if (key == "Coscine.Api") + { + return Task.FromResult($"https://{hostName}.{domainName}/coscine/api/swagger/v2/swagger.json"); + } return Task.FromResult($"https://{hostName}.{domainName}/coscine/api/{key}/swagger/v1/swagger.json"); } internal override string GetGenerationCommand(string outputPath, string jarFileName, string key, string swaggerUrl) { - return $"java \"-Dio.swagger.parser.util.RemoteUrl.trustAll=true\" \"-Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true\" -jar \"{jarFileName}\" generate -i \"{swaggerUrl}\" -g typescript-axios -o \"{outputPath}/{key}\" --skip-validate-spec"; + return $"java \"-Dio.swagger.parser.util.RemoteUrl.trustAll=true\" \"-Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true\" -jar \"{jarFileName}\" generate -i \"{swaggerUrl}\" -g typescript-axios -o \"{outputPath}/{key}\" --additional-properties=useSingleRequestParameter=true,apiPackage=@coscine/api,modelPackage=@coscine/model,withSeparateModelsAndApi=true --skip-validate-spec"; } internal override Task<string> GetCustomBasePath(string directoryName) { - return Task.FromResult($"https://' + getHostName() + '/coscine/api/{directoryName}"); + var appendedPath = directoryName == "Coscine.Api.STS" + ? $"/api/{directoryName}" + : ""; + return Task.FromResult( + $"https://' + getHostName() + '/coscine{appendedPath}" + ); } internal override Task<string> GetCustomCodeForCombinationFile(string combinationFileText) @@ -69,9 +81,6 @@ public class CoscineCodeGenerator : CodeGenerator // Keep it like that for formatting combinationFileText += @" -if (typeof coscine !== 'undefined' && typeof coscine.authorization !== 'undefined') { - accessToken = 'Bearer ' + coscine.authorization.bearer; -} if (typeof window !== 'undefined') { // LocalStorage > Global Variables const localStorageToken = localStorage.getItem('coscine.authorization.bearer'); @@ -94,4 +103,4 @@ const getHostName = () => { "; return Task.FromResult(combinationFileText); } -} +} \ No newline at end of file -- GitLab