Skip to content

Commit d61e55d

Browse files
committed
Post-merge fixes
1 parent cbb6cb2 commit d61e55d

File tree

9 files changed

+22
-30
lines changed

9 files changed

+22
-30
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ name: Build
1010

1111
on:
1212
push:
13-
branches: [ 'master', 'release/**' ]
13+
branches: [ 'master', 'release/**', 'openapi' ]
1414
pull_request:
15-
branches: [ 'master', 'release/**' ]
15+
branches: [ 'master', 'release/**', 'openapi' ]
1616
tags:
1717
- 'v*'
1818

Build.ps1

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,6 @@ function VerifySuccessExitCode {
77
Write-Host "$(pwsh --version)"
88
Write-Host "Active .NET SDK: $(dotnet --version)"
99

10-
# In a PR the base branch needs to be fetched in order for regitlint to work.
11-
function FetchBaseBranchIfNotMaster() {
12-
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -And $env:APPVEYOR_REPO_BRANCH -ne "master") {
13-
git fetch -q origin ${env:APPVEYOR_REPO_BRANCH}:${env:APPVEYOR_REPO_BRANCH}
14-
}
15-
}
16-
17-
FetchBaseBranchIfNotMaster
18-
1910
dotnet tool restore
2011
VerifySuccessExitCode
2112

src/JsonApiDotNetCore.OpenApi.Client/JsonApiDotNetCore.OpenApi.Client.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121
<DebugType>embedded</DebugType>
2222
</PropertyGroup>
2323

24-
<PropertyGroup Condition="'$(APPVEYOR)' != ''">
25-
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
26-
</PropertyGroup>
27-
2824
<ItemGroup>
2925
<None Include="..\..\logo.png" Visible="false" Pack="True" PackagePath="" />
3026
<None Include="..\..\PackageReadme.md" Visible="false" Pack="True" PackagePath="" />

src/JsonApiDotNetCore.OpenApi/JsonApiDotNetCore.OpenApi.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121
<DebugType>embedded</DebugType>
2222
</PropertyGroup>
2323

24-
<PropertyGroup Condition="'$(APPVEYOR)' != ''">
25-
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
26-
</PropertyGroup>
27-
2824
<ItemGroup>
2925
<None Include="..\..\logo.png" Visible="false" Pack="True" PackagePath="" />
3026
<None Include="..\..\PackageReadme.md" Visible="false" Pack="True" PackagePath="" />

src/JsonApiDotNetCore.OpenApi/JsonApiOperationIdSelector.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,15 @@ private string ApplyTemplate(string operationIdTemplate, ResourceType resourceTy
116116
string relationshipName = operationIdTemplate.Contains("[RelationshipName]") ? endpoint.RelativePath.Split("/").Last() : string.Empty;
117117

118118
// @formatter:wrap_chained_method_calls chop_always
119-
// @formatter:keep_existing_linebreaks true
119+
// @formatter:wrap_before_first_method_call true true
120120

121121
string pascalCaseOperationId = operationIdTemplate
122122
.Replace("[Method]", method)
123123
.Replace("[PrimaryResourceName]", resourceType.PublicName.Singularize())
124124
.Replace("[RelationshipName]", relationshipName)
125125
.ToPascalCase();
126126

127-
// @formatter:keep_existing_linebreaks restore
127+
// @formatter:wrap_before_first_method_call true restore
128128
// @formatter:wrap_chained_method_calls restore
129129

130130
return _namingPolicy != null ? _namingPolicy.ConvertName(pascalCaseOperationId) : pascalCaseOperationId;

src/JsonApiDotNetCore.OpenApi/SwaggerComponents/ResourceObjectSchemaGenerator.cs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ internal sealed class ResourceObjectSchemaGenerator
99
{
1010
private readonly SchemaGenerator _defaultSchemaGenerator;
1111
private readonly IResourceGraph _resourceGraph;
12+
private readonly IJsonApiOptions _options;
1213
private readonly ISchemaRepositoryAccessor _schemaRepositoryAccessor;
1314
private readonly ResourceTypeSchemaGenerator _resourceTypeSchemaGenerator;
14-
private readonly bool _allowClientGeneratedIds;
1515
private readonly Func<ResourceTypeInfo, ResourceFieldObjectSchemaBuilder> _resourceFieldObjectSchemaBuilderFactory;
1616

1717
public ResourceObjectSchemaGenerator(SchemaGenerator defaultSchemaGenerator, IResourceGraph resourceGraph, IJsonApiOptions options,
@@ -24,12 +24,11 @@ public ResourceObjectSchemaGenerator(SchemaGenerator defaultSchemaGenerator, IRe
2424

2525
_defaultSchemaGenerator = defaultSchemaGenerator;
2626
_resourceGraph = resourceGraph;
27+
_options = options;
2728
_schemaRepositoryAccessor = schemaRepositoryAccessor;
2829

2930
_resourceTypeSchemaGenerator = new ResourceTypeSchemaGenerator(schemaRepositoryAccessor, resourceGraph, options.SerializerOptions.PropertyNamingPolicy);
3031

31-
_allowClientGeneratedIds = options.AllowClientGeneratedIds;
32-
3332
_resourceFieldObjectSchemaBuilderFactory = resourceTypeInfo => new ResourceFieldObjectSchemaBuilder(resourceTypeInfo, schemaRepositoryAccessor,
3433
defaultSchemaGenerator, _resourceTypeSchemaGenerator, options.SerializerOptions.PropertyNamingPolicy);
3534
}
@@ -43,7 +42,7 @@ public OpenApiSchema GenerateSchema(Type resourceObjectType)
4342
var resourceTypeInfo = ResourceTypeInfo.Create(resourceObjectType, _resourceGraph);
4443
ResourceFieldObjectSchemaBuilder fieldObjectBuilder = _resourceFieldObjectSchemaBuilderFactory(resourceTypeInfo);
4544

46-
RemoveResourceIdIfPostResourceObject(resourceTypeInfo.ResourceObjectOpenType, fullSchemaForResourceObject);
45+
RemoveResourceIdIfPostResourceObject(resourceTypeInfo, fullSchemaForResourceObject);
4746

4847
SetResourceType(fullSchemaForResourceObject, resourceTypeInfo.ResourceType.ClrType);
4948

@@ -76,12 +75,21 @@ public OpenApiSchema GenerateSchema(Type resourceObjectType)
7675
return (fullSchema, referenceSchema);
7776
}
7877

79-
private void RemoveResourceIdIfPostResourceObject(Type resourceObjectOpenType, OpenApiSchema fullSchemaForResourceObject)
78+
private void RemoveResourceIdIfPostResourceObject(ResourceTypeInfo resourceTypeInfo, OpenApiSchema fullSchemaForResourceObject)
8079
{
81-
if (resourceObjectOpenType == typeof(ResourceObjectInPostRequest<>) && !_allowClientGeneratedIds)
80+
if (resourceTypeInfo.ResourceObjectOpenType == typeof(ResourceObjectInPostRequest<>))
8281
{
83-
fullSchemaForResourceObject.Required.Remove(JsonApiObjectPropertyName.Id);
84-
fullSchemaForResourceObject.Properties.Remove(JsonApiObjectPropertyName.Id);
82+
ClientIdGenerationMode clientIdGeneration = resourceTypeInfo.ResourceType.ClientIdGeneration ?? _options.ClientIdGeneration;
83+
84+
if (clientIdGeneration == ClientIdGenerationMode.Forbidden)
85+
{
86+
fullSchemaForResourceObject.Required.Remove(JsonApiObjectPropertyName.Id);
87+
fullSchemaForResourceObject.Properties.Remove(JsonApiObjectPropertyName.Id);
88+
}
89+
else if (clientIdGeneration == ClientIdGenerationMode.Allowed)
90+
{
91+
fullSchemaForResourceObject.Required.Remove(JsonApiObjectPropertyName.Id);
92+
}
8593
}
8694
}
8795

test/OpenApiClientTests/OpenApiClientTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
<ItemGroup>
1212
<PackageReference Include="coverlet.collector" Version="$(CoverletVersion)" PrivateAssets="All" />
13+
<PackageReference Include="GitHubActionsTestLogger" Version="$(GitHubActionsTestLoggerVersion)" PrivateAssets="All" />
1314
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="$(AspNetVersion)" />
1415
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" />
1516
<PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />

test/OpenApiTests/LegacyOpenApiIntegration/LegacyIntegrationDbContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using TestBuildingBlocks;
44

55
// @formatter:wrap_chained_method_calls chop_always
6-
// @formatter:keep_existing_linebreaks true
76

87
namespace OpenApiTests.LegacyOpenApiIntegration;
98

test/OpenApiTests/OpenApiTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
<ItemGroup>
1717
<PackageReference Include="coverlet.collector" Version="$(CoverletVersion)" PrivateAssets="All" />
18+
<PackageReference Include="GitHubActionsTestLogger" Version="$(GitHubActionsTestLoggerVersion)" PrivateAssets="All" />
1819
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="$(AspNetVersion)" />
1920
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" />
2021
<PackageReference Include="BlushingPenguin.JsonPath" Version="1.0.6" />

0 commit comments

Comments
 (0)