Skip to content

Commit 0b15d45

Browse files
author
Bart Koelman
committed
Renamed OperationKind to WriteOperationKind, exposed as IJsonApiRequest.WriteOperation
1 parent b277e1f commit 0b15d45

30 files changed

+199
-200
lines changed

src/Examples/JsonApiDotNetCoreExample/Definitions/TodoItemDefinition.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ private SortExpression GetDefaultSortOrder()
3636
});
3737
}
3838

39-
public override Task OnWritingAsync(TodoItem resource, OperationKind operationKind, CancellationToken cancellationToken)
39+
public override Task OnWritingAsync(TodoItem resource, WriteOperationKind writeOperation, CancellationToken cancellationToken)
4040
{
41-
if (operationKind == OperationKind.CreateResource)
41+
if (writeOperation == WriteOperationKind.CreateResource)
4242
{
4343
resource.CreatedAt = _systemClock.UtcNow;
4444
}
45-
else if (operationKind == OperationKind.UpdateResource)
45+
else if (writeOperation == WriteOperationKind.UpdateResource)
4646
{
4747
resource.LastModifiedAt = _systemClock.UtcNow;
4848
}

src/JsonApiDotNetCore/AtomicOperations/LocalIdValidator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void Validate(IEnumerable<OperationContainer> operations)
5656

5757
private void ValidateOperation(OperationContainer operation)
5858
{
59-
if (operation.Kind == OperationKind.CreateResource)
59+
if (operation.Kind == WriteOperationKind.CreateResource)
6060
{
6161
DeclareLocalId(operation.Resource);
6262
}
@@ -70,7 +70,7 @@ private void ValidateOperation(OperationContainer operation)
7070
AssertLocalIdIsAssigned(secondaryResource);
7171
}
7272

73-
if (operation.Kind == OperationKind.CreateResource)
73+
if (operation.Kind == WriteOperationKind.CreateResource)
7474
{
7575
AssignLocalId(operation);
7676
}

src/JsonApiDotNetCore/AtomicOperations/OperationProcessorAccessor.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,37 @@ protected virtual IOperationProcessor ResolveProcessor(OperationContainer operat
4444
return (IOperationProcessor)_serviceProvider.GetRequiredService(processorType);
4545
}
4646

47-
private static Type GetProcessorInterface(OperationKind kind)
47+
private static Type GetProcessorInterface(WriteOperationKind writeOperation)
4848
{
49-
switch (kind)
49+
switch (writeOperation)
5050
{
51-
case OperationKind.CreateResource:
51+
case WriteOperationKind.CreateResource:
5252
{
5353
return typeof(ICreateProcessor<,>);
5454
}
55-
case OperationKind.UpdateResource:
55+
case WriteOperationKind.UpdateResource:
5656
{
5757
return typeof(IUpdateProcessor<,>);
5858
}
59-
case OperationKind.DeleteResource:
59+
case WriteOperationKind.DeleteResource:
6060
{
6161
return typeof(IDeleteProcessor<,>);
6262
}
63-
case OperationKind.SetRelationship:
63+
case WriteOperationKind.SetRelationship:
6464
{
6565
return typeof(ISetRelationshipProcessor<,>);
6666
}
67-
case OperationKind.AddToRelationship:
67+
case WriteOperationKind.AddToRelationship:
6868
{
6969
return typeof(IAddToRelationshipProcessor<,>);
7070
}
71-
case OperationKind.RemoveFromRelationship:
71+
case WriteOperationKind.RemoveFromRelationship:
7272
{
7373
return typeof(IRemoveFromRelationshipProcessor<,>);
7474
}
7575
default:
7676
{
77-
throw new NotSupportedException($"Unknown operation kind '{kind}'.");
77+
throw new NotSupportedException($"Unknown write operation kind '{writeOperation}'.");
7878
}
7979
}
8080
}

src/JsonApiDotNetCore/AtomicOperations/OperationsProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ protected virtual async Task<OperationContainer> ProcessOperationAsync(Operation
118118

119119
protected void TrackLocalIdsForOperation(OperationContainer operation)
120120
{
121-
if (operation.Kind == OperationKind.CreateResource)
121+
if (operation.Kind == WriteOperationKind.CreateResource)
122122
{
123123
DeclareLocalId(operation.Resource);
124124
}

src/JsonApiDotNetCore/Configuration/JsonApiValidationFilter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public bool ShouldValidateEntry(ValidationEntry entry, ValidationEntry parentEnt
4141

4242
var httpContextAccessor = _serviceProvider.GetRequiredService<IHttpContextAccessor>();
4343

44-
if (httpContextAccessor.HttpContext!.Request.Method == HttpMethods.Patch || request.OperationKind == OperationKind.UpdateResource)
44+
if (httpContextAccessor.HttpContext!.Request.Method == HttpMethods.Patch || request.WriteOperation == WriteOperationKind.UpdateResource)
4545
{
4646
var targetedFields = _serviceProvider.GetRequiredService<ITargetedFields>();
4747
return IsFieldTargeted(entry, targetedFields);

src/JsonApiDotNetCore/Controllers/BaseJsonApiOperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ protected virtual void ValidateClientGeneratedIds(IEnumerable<OperationContainer
132132

133133
foreach (OperationContainer operation in operations)
134134
{
135-
if (operation.Kind == OperationKind.CreateResource && operation.Resource.StringId != null)
135+
if (operation.Kind == WriteOperationKind.CreateResource && operation.Resource.StringId != null)
136136
{
137137
throw new ResourceIdInCreateResourceNotAllowedException(index);
138138
}
@@ -153,7 +153,7 @@ protected virtual void ValidateModelState(IEnumerable<OperationContainer> operat
153153

154154
foreach (OperationContainer operation in operations)
155155
{
156-
if (operation.Kind == OperationKind.CreateResource || operation.Kind == OperationKind.UpdateResource)
156+
if (operation.Kind == WriteOperationKind.CreateResource || operation.Kind == WriteOperationKind.UpdateResource)
157157
{
158158
_targetedFields.Attributes = operation.TargetedFields.Attributes;
159159
_targetedFields.Relationships = operation.TargetedFields.Relationships;

src/JsonApiDotNetCore/Middleware/IJsonApiRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public interface IJsonApiRequest
4848
/// <summary>
4949
/// In case of a non-readonly request, this indicates the kind of write operation currently being processed.
5050
/// </summary>
51-
OperationKind? OperationKind { get; }
51+
WriteOperationKind? WriteOperation { get; }
5252

5353
/// <summary>
5454
/// In case of an atomic:operations request, identifies the overarching transaction.

src/JsonApiDotNetCore/Middleware/JsonApiMiddleware.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,10 @@ private static void SetupResourceRequest(JsonApiRequest request, ResourceContext
224224
// @formatter:wrap_chained_method_calls chop_always
225225
// @formatter:keep_existing_linebreaks true
226226

227-
request.OperationKind =
228-
httpRequest.Method == HttpMethod.Post.Method ? OperationKind.AddToRelationship :
229-
httpRequest.Method == HttpMethod.Patch.Method ? OperationKind.SetRelationship :
230-
httpRequest.Method == HttpMethod.Delete.Method ? OperationKind.RemoveFromRelationship : null;
227+
request.WriteOperation =
228+
httpRequest.Method == HttpMethod.Post.Method ? WriteOperationKind.AddToRelationship :
229+
httpRequest.Method == HttpMethod.Patch.Method ? WriteOperationKind.SetRelationship :
230+
httpRequest.Method == HttpMethod.Delete.Method ? WriteOperationKind.RemoveFromRelationship : null;
231231

232232
// @formatter:keep_existing_linebreaks restore
233233
// @formatter:wrap_chained_method_calls restore
@@ -248,10 +248,10 @@ private static void SetupResourceRequest(JsonApiRequest request, ResourceContext
248248
// @formatter:wrap_chained_method_calls chop_always
249249
// @formatter:keep_existing_linebreaks true
250250

251-
request.OperationKind =
252-
httpRequest.Method == HttpMethod.Post.Method ? OperationKind.CreateResource :
253-
httpRequest.Method == HttpMethod.Patch.Method ? OperationKind.UpdateResource :
254-
httpRequest.Method == HttpMethod.Delete.Method ? OperationKind.DeleteResource : null;
251+
request.WriteOperation =
252+
httpRequest.Method == HttpMethod.Post.Method ? WriteOperationKind.CreateResource :
253+
httpRequest.Method == HttpMethod.Patch.Method ? WriteOperationKind.UpdateResource :
254+
httpRequest.Method == HttpMethod.Delete.Method ? WriteOperationKind.DeleteResource : null;
255255

256256
// @formatter:keep_existing_linebreaks restore
257257
// @formatter:wrap_chained_method_calls restore

src/JsonApiDotNetCore/Middleware/JsonApiRequest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public sealed class JsonApiRequest : IJsonApiRequest
3030
public bool IsReadOnly { get; set; }
3131

3232
/// <inheritdoc />
33-
public OperationKind? OperationKind { get; set; }
33+
public WriteOperationKind? WriteOperation { get; set; }
3434

3535
/// <inheritdoc />
3636
public string TransactionId { get; set; }
@@ -47,7 +47,7 @@ public void CopyFrom(IJsonApiRequest other)
4747
Relationship = other.Relationship;
4848
IsCollection = other.IsCollection;
4949
IsReadOnly = other.IsReadOnly;
50-
OperationKind = other.OperationKind;
50+
WriteOperation = other.WriteOperation;
5151
TransactionId = other.TransactionId;
5252
}
5353
}

src/JsonApiDotNetCore/Middleware/OperationKind.cs renamed to src/JsonApiDotNetCore/Middleware/WriteOperationKind.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
namespace JsonApiDotNetCore.Middleware
22
{
33
/// <summary>
4-
/// Lists the functional operation kinds of a resource request or an atomic:operations request.
4+
/// Lists the functional write operations, originating from a POST/PATCH/DELETE request against a single resource/relationship or a POST request against
5+
/// a list of operations.
56
/// </summary>
6-
public enum OperationKind
7+
public enum WriteOperationKind
78
{
89
/// <summary>
910
/// Create a new resource with attributes, relationships or both.

src/JsonApiDotNetCore/Repositories/EntityFrameworkCoreRepository.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public virtual async Task CreateAsync(TResource resourceFromRequest, TResource r
164164
{
165165
object rightValue = relationship.GetValue(resourceFromRequest);
166166

167-
object rightValueEvaluated = await VisitSetRelationshipAsync(resourceForDatabase, relationship, rightValue, OperationKind.CreateResource,
167+
object rightValueEvaluated = await VisitSetRelationshipAsync(resourceForDatabase, relationship, rightValue, WriteOperationKind.CreateResource,
168168
cancellationToken);
169169

170170
await UpdateRelationshipAsync(relationship, resourceForDatabase, rightValueEvaluated, collector, cancellationToken);
@@ -175,30 +175,30 @@ public virtual async Task CreateAsync(TResource resourceFromRequest, TResource r
175175
attribute.SetValue(resourceForDatabase, attribute.GetValue(resourceFromRequest));
176176
}
177177

178-
await _resourceDefinitionAccessor.OnWritingAsync(resourceForDatabase, OperationKind.CreateResource, cancellationToken);
178+
await _resourceDefinitionAccessor.OnWritingAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
179179

180180
DbSet<TResource> dbSet = _dbContext.Set<TResource>();
181181
await dbSet.AddAsync(resourceForDatabase, cancellationToken);
182182

183183
await SaveChangesAsync(cancellationToken);
184184

185-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resourceForDatabase, OperationKind.CreateResource, cancellationToken);
185+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
186186
}
187187

188188
private async Task<object> VisitSetRelationshipAsync(TResource leftResource, RelationshipAttribute relationship, object rightValue,
189-
OperationKind operationKind, CancellationToken cancellationToken)
189+
WriteOperationKind writeOperation, CancellationToken cancellationToken)
190190
{
191191
if (relationship is HasOneAttribute hasOneRelationship)
192192
{
193-
return await _resourceDefinitionAccessor.OnSetToOneRelationshipAsync(leftResource, hasOneRelationship, (IIdentifiable)rightValue, operationKind,
194-
cancellationToken);
193+
return await _resourceDefinitionAccessor.OnSetToOneRelationshipAsync(leftResource, hasOneRelationship, (IIdentifiable)rightValue,
194+
writeOperation, cancellationToken);
195195
}
196196

197197
if (relationship is HasManyAttribute hasManyRelationship)
198198
{
199199
HashSet<IIdentifiable> rightResourceIdSet = _collectionConverter.ExtractResources(rightValue).ToHashSet(IdentifiableComparer.Instance);
200200

201-
await _resourceDefinitionAccessor.OnSetToManyRelationshipAsync(leftResource, hasManyRelationship, rightResourceIdSet, operationKind,
201+
await _resourceDefinitionAccessor.OnSetToManyRelationshipAsync(leftResource, hasManyRelationship, rightResourceIdSet, writeOperation,
202202
cancellationToken);
203203

204204
return rightResourceIdSet;
@@ -232,7 +232,7 @@ public virtual async Task UpdateAsync(TResource resourceFromRequest, TResource r
232232
{
233233
object rightValue = relationship.GetValue(resourceFromRequest);
234234

235-
object rightValueEvaluated = await VisitSetRelationshipAsync(resourceFromDatabase, relationship, rightValue, OperationKind.UpdateResource,
235+
object rightValueEvaluated = await VisitSetRelationshipAsync(resourceFromDatabase, relationship, rightValue, WriteOperationKind.UpdateResource,
236236
cancellationToken);
237237

238238
AssertIsNotClearingRequiredRelationship(relationship, resourceFromDatabase, rightValueEvaluated);
@@ -245,11 +245,11 @@ public virtual async Task UpdateAsync(TResource resourceFromRequest, TResource r
245245
attribute.SetValue(resourceFromDatabase, attribute.GetValue(resourceFromRequest));
246246
}
247247

248-
await _resourceDefinitionAccessor.OnWritingAsync(resourceFromDatabase, OperationKind.UpdateResource, cancellationToken);
248+
await _resourceDefinitionAccessor.OnWritingAsync(resourceFromDatabase, WriteOperationKind.UpdateResource, cancellationToken);
249249

250250
await SaveChangesAsync(cancellationToken);
251251

252-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resourceFromDatabase, OperationKind.UpdateResource, cancellationToken);
252+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resourceFromDatabase, WriteOperationKind.UpdateResource, cancellationToken);
253253
}
254254

255255
protected void AssertIsNotClearingRequiredRelationship(RelationshipAttribute relationship, TResource leftResource, object rightValue)
@@ -300,7 +300,7 @@ public virtual async Task DeleteAsync(TId id, CancellationToken cancellationToke
300300
var emptyResource = _resourceFactory.CreateInstance<TResource>();
301301
emptyResource.Id = id;
302302

303-
await _resourceDefinitionAccessor.OnWritingAsync(emptyResource, OperationKind.DeleteResource, cancellationToken);
303+
await _resourceDefinitionAccessor.OnWritingAsync(emptyResource, WriteOperationKind.DeleteResource, cancellationToken);
304304

305305
using var collector = new PlaceholderResourceCollector(_resourceFactory, _dbContext);
306306
TResource resource = collector.CreateForId<TResource, TId>(id);
@@ -320,7 +320,7 @@ public virtual async Task DeleteAsync(TId id, CancellationToken cancellationToke
320320

321321
await SaveChangesAsync(cancellationToken);
322322

323-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resource, OperationKind.DeleteResource, cancellationToken);
323+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(resource, WriteOperationKind.DeleteResource, cancellationToken);
324324
}
325325

326326
private NavigationEntry GetNavigationEntry(TResource resource, RelationshipAttribute relationship)
@@ -377,18 +377,18 @@ public virtual async Task SetRelationshipAsync(TResource leftResource, object ri
377377
RelationshipAttribute relationship = _targetedFields.Relationships.Single();
378378

379379
object rightValueEvaluated =
380-
await VisitSetRelationshipAsync(leftResource, relationship, rightValue, OperationKind.SetRelationship, cancellationToken);
380+
await VisitSetRelationshipAsync(leftResource, relationship, rightValue, WriteOperationKind.SetRelationship, cancellationToken);
381381

382382
AssertIsNotClearingRequiredRelationship(relationship, leftResource, rightValueEvaluated);
383383

384384
using var collector = new PlaceholderResourceCollector(_resourceFactory, _dbContext);
385385
await UpdateRelationshipAsync(relationship, leftResource, rightValueEvaluated, collector, cancellationToken);
386386

387-
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, OperationKind.SetRelationship, cancellationToken);
387+
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, WriteOperationKind.SetRelationship, cancellationToken);
388388

389389
await SaveChangesAsync(cancellationToken);
390390

391-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, OperationKind.SetRelationship, cancellationToken);
391+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, WriteOperationKind.SetRelationship, cancellationToken);
392392
}
393393

394394
/// <inheritdoc />
@@ -413,11 +413,11 @@ public virtual async Task AddToToManyRelationshipAsync(TId leftId, ISet<IIdentif
413413

414414
await UpdateRelationshipAsync(relationship, leftResource, rightResourceIds, collector, cancellationToken);
415415

416-
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, OperationKind.AddToRelationship, cancellationToken);
416+
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, WriteOperationKind.AddToRelationship, cancellationToken);
417417

418418
await SaveChangesAsync(cancellationToken);
419419

420-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, OperationKind.AddToRelationship, cancellationToken);
420+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, WriteOperationKind.AddToRelationship, cancellationToken);
421421
}
422422
}
423423

@@ -451,11 +451,11 @@ public virtual async Task RemoveFromToManyRelationshipAsync(TResource leftResour
451451
using var collector = new PlaceholderResourceCollector(_resourceFactory, _dbContext);
452452
await UpdateRelationshipAsync(relationship, leftResource, rightResourceIdsToStore, collector, cancellationToken);
453453

454-
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, OperationKind.RemoveFromRelationship, cancellationToken);
454+
await _resourceDefinitionAccessor.OnWritingAsync(leftResource, WriteOperationKind.RemoveFromRelationship, cancellationToken);
455455

456456
await SaveChangesAsync(cancellationToken);
457457

458-
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, OperationKind.RemoveFromRelationship, cancellationToken);
458+
await _resourceDefinitionAccessor.OnWriteSucceededAsync(leftResource, WriteOperationKind.RemoveFromRelationship, cancellationToken);
459459
}
460460
}
461461

0 commit comments

Comments
 (0)