Skip to content

Commit 3fe49f4

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

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

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

Lines changed: 15 additions & 11 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,29 +110,21 @@ 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-
};
121-
122113
state.WritableRequest!.PrimaryId = refResult.Resource.StringId;
123114
state.WritableRequest.PrimaryResourceType = refResult.ResourceType;
124115
state.WritableRequest.Relationship = refResult.Relationship;
125116
state.WritableRequest.IsCollection = refResult.Relationship is HasManyAttribute;
126117

127118
ConvertRefRelationship(atomicOperationObject.Data, refResult, state);
128119

120+
requirements = CreateRefRequirements(refResult, requirements);
129121
primaryResource = refResult.Resource;
130122
}
131123

132124
return (requirements, primaryResource);
133125
}
134126

135-
private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterState state)
127+
private ResourceIdentityRequirements CreateDataRequirements(RequestAdapterState state)
136128
{
137129
JsonElementConstraint? idConstraint = state.Request.WriteOperation == WriteOperationKind.CreateResource
138130
? _options.AllowClientGeneratedIds ? null : JsonElementConstraint.Forbidden
@@ -144,6 +136,18 @@ private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterSt
144136
};
145137
}
146138

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

0 commit comments

Comments
 (0)