Skip to content

Commit f9cee9b

Browse files
author
Bart Koelman
committed
Clarify intent in AtomicOperationObjectAdapter
1 parent bcf1f18 commit f9cee9b

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/JsonApiDotNetCore/Serialization/Request/Adapters/AtomicOperationObjectAdapter.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
101101
private (ResourceIdentityRequirements requirements, IIdentifiable? primaryResource) ConvertRef(AtomicOperationObject atomicOperationObject,
102102
RequestAdapterState state)
103103
{
104-
ResourceIdentityRequirements requirements = CreateIdentityRequirements(state);
104+
ResourceIdentityRequirements requirements = CreateDataRequirements(state);
105105
IIdentifiable? primaryResource = null;
106106

107107
AtomicReferenceResult? refResult = atomicOperationObject.Ref != null
@@ -110,14 +110,7 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
110110

111111
if (refResult != null)
112112
{
113-
requirements = new ResourceIdentityRequirements
114-
{
115-
ResourceType = refResult.ResourceType,
116-
IdConstraint = requirements.IdConstraint,
117-
IdValue = refResult.Resource.StringId,
118-
LidValue = refResult.Resource.LocalId,
119-
RelationshipName = refResult.Relationship?.PublicName
120-
};
113+
requirements = CreateRefRequirements(refResult, requirements);
121114

122115
state.WritableRequest!.PrimaryId = refResult.Resource.StringId;
123116
state.WritableRequest.PrimaryResourceType = refResult.ResourceType;
@@ -132,7 +125,7 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
132125
return (requirements, primaryResource);
133126
}
134127

135-
private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterState state)
128+
private ResourceIdentityRequirements CreateDataRequirements(RequestAdapterState state)
136129
{
137130
JsonElementConstraint? idConstraint = state.Request.WriteOperation == WriteOperationKind.CreateResource
138131
? _options.AllowClientGeneratedIds ? null : JsonElementConstraint.Forbidden
@@ -144,6 +137,18 @@ private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterSt
144137
};
145138
}
146139

140+
private static ResourceIdentityRequirements CreateRefRequirements(AtomicReferenceResult refResult, ResourceIdentityRequirements dataRequirements)
141+
{
142+
return new ResourceIdentityRequirements
143+
{
144+
ResourceType = refResult.ResourceType,
145+
IdConstraint = dataRequirements.IdConstraint,
146+
IdValue = refResult.Resource.StringId,
147+
LidValue = refResult.Resource.LocalId,
148+
RelationshipName = refResult.Relationship?.PublicName
149+
};
150+
}
151+
147152
private void ConvertRefRelationship(SingleOrManyData<ResourceObject> relationshipData, AtomicReferenceResult refResult, RequestAdapterState state)
148153
{
149154
if (refResult.Relationship != null)

0 commit comments

Comments
 (0)