Skip to content

Commit 1ec4b7a

Browse files
committed
feat: export/publish built-in managed gateway apis
1 parent c014cca commit 1ec4b7a

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

tools/code/common/Gateway.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ namespace common;
1515

1616
public sealed record GatewayName : ResourceName, IResourceName<GatewayName>
1717
{
18+
public static GatewayName Managed { get; } = From("managed");
19+
1820
private GatewayName(string value) : base(value) { }
1921

2022
public static GatewayName From(string value) => new(value);

tools/code/extractor/Gateway.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ await list(cancellationToken)
5252

5353
async ValueTask extractGateway(GatewayName name, GatewayDto dto, CancellationToken cancellationToken)
5454
{
55-
await writeArtifacts(name, dto, cancellationToken);
55+
if (name != GatewayName.Managed)
56+
{
57+
await writeArtifacts(name, dto, cancellationToken);
58+
}
5659
await extractGatewayApis(name, cancellationToken);
5760
}
5861
}

tools/code/publisher/Gateway.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ private static PutGateways GetPutGateways(IServiceProvider provider)
5454
await getPublisherFiles()
5555
.Choose(tryParseName.Invoke)
5656
.Where(isNameInSourceControl.Invoke)
57+
.Where(name => name != GatewayName.Managed)
5758
.Distinct()
5859
.IterParallel(put.Invoke, cancellationToken);
5960
};
@@ -203,6 +204,7 @@ private static DeleteGateways GetDeleteGateways(IServiceProvider provider)
203204
await getPublisherFiles()
204205
.Choose(tryParseName.Invoke)
205206
.Where(name => isNameInSourceControl(name) is false)
207+
.Where(name => name != GatewayName.Managed)
206208
.Distinct()
207209
.IterParallel(delete.Invoke, cancellationToken);
208210
};

tools/code/publisher/GatewayApi.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using System.Linq;
1212
using System.Threading;
1313
using System.Threading.Tasks;
14+
using LanguageExt.UnsafeValueAccess;
1415

1516
namespace publisher;
1617

@@ -182,7 +183,9 @@ public static void ConfigureDeleteGatewayApis(IHostApplicationBuilder builder)
182183
private static DeleteGatewayApis GetDeleteGatewayApis(IServiceProvider provider)
183184
{
184185
var getPublisherFiles = provider.GetRequiredService<GetPublisherFiles>();
185-
var tryParseName = provider.GetRequiredService<TryParseGatewayApiName>();
186+
var tryParseGatewayApiName = provider.GetRequiredService<TryParseGatewayApiName>();
187+
var tryParseApiName = provider.GetRequiredService<TryParseApiName>();
188+
var serviceDirectory = provider.GetRequiredService<ManagementServiceDirectory>();
186189
var isNameInSourceControl = provider.GetRequiredService<IsGatewayApiNameInSourceControl>();
187190
var delete = provider.GetRequiredService<DeleteGatewayApi>();
188191
var activitySource = provider.GetRequiredService<ActivitySource>();
@@ -194,8 +197,15 @@ private static DeleteGatewayApis GetDeleteGatewayApis(IServiceProvider provider)
194197

195198
logger.LogInformation("Deleting gateway apis...");
196199

197-
await getPublisherFiles()
198-
.Choose(tryParseName.Invoke)
200+
var publisherFiles = getPublisherFiles();
201+
var managedGatewayGatewayApis = publisherFiles.Select(x => tryParseApiName(x))
202+
.Where(x => x.IsSome)
203+
.Select(x => GatewayApiInformationFile.From(x.ValueUnsafe()!, GatewayName.Managed, serviceDirectory)
204+
.ToFileInfo());
205+
206+
await publisherFiles
207+
.Concat(managedGatewayGatewayApis)
208+
.Choose(tryParseGatewayApiName.Invoke)
199209
.Where(api => isNameInSourceControl(api.Name, api.GatewayName) is false)
200210
.Distinct()
201211
.IterParallel(delete.Invoke, cancellationToken);

0 commit comments

Comments
 (0)