Skip to content
Snippets Groups Projects
Commit 986652ba authored by Benedikt Heinrichs's avatar Benedikt Heinrichs
Browse files

Add additional api inclusion

parent b6550fc6
No related branches found
No related tags found
1 merge request!1New: Create a Api Client Script
......@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace Coscine.CodeGen
{
......@@ -63,6 +64,8 @@ namespace Coscine.CodeGen
var first = true;
var apiRegex = new Regex("(?<= )(.*?)(?= extends BaseAPI)");
foreach (var directory in Directory.GetDirectories(outputPath))
{
var apiName = directory[(directory.LastIndexOf(".") + 1)..];
......@@ -71,15 +74,25 @@ namespace Coscine.CodeGen
apiName = apiName.Replace("Resources", "Resource");
apiName = apiName.Replace("Notices", "Notice");
combinationFileImports.Add($"import {{ {apiName}ApiFactory }} from './{directoryName}/api';");
var apiContent = File.ReadAllText($"./{outputPath}/{directoryName}/api.ts");
var apiImplementations = apiRegex.Matches(apiContent);
foreach (var apiImplementation in apiImplementations)
{
var concreteApiName = apiImplementation.ToString().Replace("class ", "");
combinationFileImports.Add($"import {{ {concreteApiName}Factory }} from './{directoryName}/api';");
if (first)
{
first = false;
combinationFileImports.Add($"import {{ Configuration }} from './{directoryName}/configuration';");
}
combinationFileExports.Add($"{apiName}Api: {apiName}ApiFactory(new Configuration({{ 'accessToken': accessToken }}), 'https://' + getHostName() + '/coscine/api/{directoryName}', axios)");
combinationFileExports.Add($"{concreteApiName}: {concreteApiName}Factory(new Configuration({{ 'accessToken': accessToken }}), 'https://' + getHostName() + '/coscine/api/{directoryName}', axios)");
}
}
combinationFileExports.Sort();
var combinationFileText = "import { AxiosInstance } from 'axios';\n\n";
combinationFileText += string.Join('\n', combinationFileImports);
combinationFileText += "\n\n";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment