4
4
using System . Linq ;
5
5
using System . Reflection ;
6
6
using JsonApiDotNetCore . OpenApi . JsonApiObjects ;
7
- using JsonApiDotNetCore . OpenApi . JsonApiObjects . RelationshipData ;
7
+ using JsonApiDotNetCore . OpenApi . JsonApiObjects . Relationships ;
8
8
using JsonApiDotNetCore . OpenApi . JsonApiObjects . ResourceObjects ;
9
9
using JsonApiDotNetCore . Resources . Annotations ;
10
10
using Microsoft . OpenApi . Models ;
@@ -16,11 +16,11 @@ internal sealed class ResourceFieldObjectSchemaBuilder
16
16
{
17
17
private static readonly SchemaRepository ResourceSchemaRepository = new ( ) ;
18
18
19
- private static readonly Type [ ] RelationshipResponseDataOpenTypes =
19
+ private static readonly Type [ ] RelationshipInResponseOpenTypes =
20
20
{
21
- typeof ( ToOneRelationshipResponseData < > ) ,
22
- typeof ( ToManyRelationshipResponseData < > ) ,
23
- typeof ( NullableToOneRelationshipResponseData < > )
21
+ typeof ( ToOneRelationshipInResponse < > ) ,
22
+ typeof ( ToManyRelationshipInResponse < > ) ,
23
+ typeof ( NullableToOneRelationshipInResponse < > )
24
24
} ;
25
25
26
26
private readonly ResourceTypeInfo _resourceTypeInfo ;
@@ -180,7 +180,7 @@ private void SetMembersOfRelationshipsObject(OpenApiSchema fullSchemaForRelation
180
180
if ( matchingRelationship != null )
181
181
{
182
182
EnsureResourceIdentifierObjectSchemaExists ( matchingRelationship ) ;
183
- AddRelationshipDataSchemaToResourceObject ( matchingRelationship , fullSchemaForRelationshipsObject ) ;
183
+ AddRelationshipSchemaToResourceObject ( matchingRelationship , fullSchemaForRelationshipsObject ) ;
184
184
}
185
185
}
186
186
}
@@ -212,59 +212,58 @@ private void GenerateResourceIdentifierObjectSchema(Type resourceIdentifierObjec
212
212
fullSchemaForResourceIdentifierObject . Properties [ JsonApiObjectPropertyName . Type ] = _resourceTypeSchemaGenerator . Get ( resourceType ) ;
213
213
}
214
214
215
- private void AddRelationshipDataSchemaToResourceObject ( RelationshipAttribute relationship , OpenApiSchema fullSchemaForRelationshipObject )
215
+ private void AddRelationshipSchemaToResourceObject ( RelationshipAttribute relationship , OpenApiSchema fullSchemaForRelationshipsObject )
216
216
{
217
- Type relationshipDataType = GetRelationshipDataType ( relationship , _resourceTypeInfo . ResourceObjectOpenType ) ;
217
+ Type relationshipSchemaType = GetRelationshipSchemaType ( relationship , _resourceTypeInfo . ResourceObjectOpenType ) ;
218
218
219
- OpenApiSchema relationshipDataSchema = GetReferenceSchemaForRelationshipData ( relationshipDataType ) ??
220
- CreateRelationshipDataObjectSchema ( relationshipDataType ) ;
219
+ OpenApiSchema relationshipSchema = GetReferenceSchemaForRelationship ( relationshipSchemaType ) ?? CreateRelationshipSchema ( relationshipSchemaType ) ;
221
220
222
- fullSchemaForRelationshipObject . Properties . Add ( relationship . PublicName , relationshipDataSchema ) ;
221
+ fullSchemaForRelationshipsObject . Properties . Add ( relationship . PublicName , relationshipSchema ) ;
223
222
224
223
if ( IsFieldRequired ( relationship ) )
225
224
{
226
- fullSchemaForRelationshipObject . Required . Add ( relationship . PublicName ) ;
225
+ fullSchemaForRelationshipsObject . Required . Add ( relationship . PublicName ) ;
227
226
}
228
227
}
229
228
230
- private static Type GetRelationshipDataType ( RelationshipAttribute relationship , Type resourceObjectType )
229
+ private static Type GetRelationshipSchemaType ( RelationshipAttribute relationship , Type resourceObjectType )
231
230
{
232
231
return resourceObjectType . GetGenericTypeDefinition ( ) . IsAssignableTo ( typeof ( ResourceResponseObject < > ) )
233
- ? RelationshipDataTypeFactory . Instance . GetForResponse ( relationship )
234
- : RelationshipDataTypeFactory . Instance . GetForRequest ( relationship ) ;
232
+ ? RelationshipTypeFactory . Instance . GetForResponse ( relationship )
233
+ : RelationshipTypeFactory . Instance . GetForRequest ( relationship ) ;
235
234
}
236
235
237
- private OpenApiSchema ? GetReferenceSchemaForRelationshipData ( Type relationshipDataType )
236
+ private OpenApiSchema ? GetReferenceSchemaForRelationship ( Type relationshipSchemaType )
238
237
{
239
- _schemaRepositoryAccessor . Current . TryLookupByType ( relationshipDataType , out OpenApiSchema ? referenceSchemaForRelationshipData ) ;
240
- return referenceSchemaForRelationshipData ;
238
+ _schemaRepositoryAccessor . Current . TryLookupByType ( relationshipSchemaType , out OpenApiSchema ? referenceSchema ) ;
239
+ return referenceSchema ;
241
240
}
242
241
243
- private OpenApiSchema CreateRelationshipDataObjectSchema ( Type relationshipDataType )
242
+ private OpenApiSchema CreateRelationshipSchema ( Type relationshipSchemaType )
244
243
{
245
- OpenApiSchema referenceSchema = _defaultSchemaGenerator . GenerateSchema ( relationshipDataType , _schemaRepositoryAccessor . Current ) ;
244
+ OpenApiSchema referenceSchema = _defaultSchemaGenerator . GenerateSchema ( relationshipSchemaType , _schemaRepositoryAccessor . Current ) ;
246
245
247
246
OpenApiSchema fullSchema = _schemaRepositoryAccessor . Current . Schemas [ referenceSchema . Reference . Id ] ;
248
247
249
- if ( IsDataPropertyNullable ( relationshipDataType ) )
248
+ if ( IsDataPropertyNullable ( relationshipSchemaType ) )
250
249
{
251
250
fullSchema . Properties [ JsonApiObjectPropertyName . Data ] =
252
251
_nullableReferenceSchemaGenerator . GenerateSchema ( fullSchema . Properties [ JsonApiObjectPropertyName . Data ] ) ;
253
252
}
254
253
255
- Type relationshipDataOpenType = relationshipDataType . GetGenericTypeDefinition ( ) ;
256
-
257
- if ( IsRelationshipDataPropertyInResponse ( relationshipDataOpenType ) )
254
+ if ( IsRelationshipInResponseType ( relationshipSchemaType ) )
258
255
{
259
256
fullSchema . Required . Remove ( JsonApiObjectPropertyName . Data ) ;
260
257
}
261
258
262
259
return referenceSchema ;
263
260
}
264
261
265
- private static bool IsRelationshipDataPropertyInResponse ( Type relationshipDataOpenType )
262
+ private static bool IsRelationshipInResponseType ( Type relationshipSchemaType )
266
263
{
267
- return RelationshipResponseDataOpenTypes . Contains ( relationshipDataOpenType ) ;
264
+ Type relationshipSchemaOpenType = relationshipSchemaType . GetGenericTypeDefinition ( ) ;
265
+
266
+ return RelationshipInResponseOpenTypes . Contains ( relationshipSchemaOpenType ) ;
268
267
}
269
268
270
269
private static bool IsDataPropertyNullable ( Type type )
0 commit comments