Skip to content

Create operation processor does not support DataList of Operation. #401

Closed
@voronizer

Description

@voronizer

Sending data:

{
  "operations": [{
    "op": "add",
    "data": [{
      "type": "mytype",
      "attributes": {
        "time": "2019-02-20T09:08:37",
        "type": 1
      }
    }]
  }]
}

It fails with:

[12:29:02 Error] JsonApiDotNetCore.Middleware.JsonApiExceptionFilter
An unhandled exception occurred during the request
JsonApiDotNetCore.Internal.JsonApiException: Transaction failed on operation[0] (add). ---> JsonApiDotNetCore.Internal.JsonApiException: Failed to deserialize document as json:api.
   at object JsonApiDotNetCore.Serialization.JsonApiDeSerializer.DocumentToObject(DocumentData data, List<DocumentData> included) in C:/projects/jsonapidotnetcore/src/JsonApiDotNetCore/Serialization/JsonApiDeSerializer.cs:line 117
   at async Task<Operation> JsonApiDotNetCore.Services.Operations.Processors.CreateOpProcessor<T, TId>.ProcessAsync(Operation operation) in C:/projects/jsonapidotnetcore/src/JsonApiDotNetCore/Services/Operations/Processors/CreateOpProcessor.cs:line 53
   at async Task JsonApiDotNetCore.Services.Operations.OperationsProcessor.ProcessOperation(Operation op, List<Operation> outputOps) in C:/projects/jsonapidotnetcore/src/JsonApiDotNetCore/Services/Operations/OperationsProcessor.cs:line 74
   at async Task<List<Operation>> JsonApiDotNetCore.Services.Operations.OperationsProcessor.ProcessAsync(List<Operation> inputOps) in C:/projects/jsonapidotnetcore/src/JsonApiDotNetCore/Services/Operations/OperationsProcessor.cs:line 49
   --- End of inner exception stack trace ---
   at JsonApiDotNetCore.Services.Operations.OperationsProcessor.ProcessAsync(List`1 inputOps) in C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Services\Operations\OperationsProcessor.cs:line 58
   at JsonApiDotNetCore.Controllers.JsonApiOperationsController.PatchAsync(OperationsDocument doc) in C:\projects\jsonapidotnetcore\src\JsonApiDotNetCore\Controllers\JsonApiOperationsController.cs:line 55

Here is only DataObject processed. But not DataList.

public async Task<Operation> ProcessAsync(Operation operation)
{
var model = (T)_deSerializer.DocumentToObject(operation.DataObject);
var result = await _service.CreateAsync(model);

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions