jsonapi_parameters icon indicating copy to clipboard operation
jsonapi_parameters copied to clipboard

Support array data for updating to-many relationships

Open nikajukic opened this issue 4 years ago • 2 comments

I've noticed that array data in a request body isn't supported and it's actually a part of the JSON:API specification.

https://jsonapi.org/format/#crud-updating-to-many-relationships

Example body:

PATCH /articles/1/relationships/tags HTTP/1.1
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  "data": [
    { "type": "tags", "id": "2" },
    { "type": "tags", "id": "3" }
  ]
}
params

:data=>[{:id=>"2", :type=>"tags"}, {:id=>"3", :type=>"tags"}]

It currently breaks with when I call params.from_jsonapi with

TypeError: no implicit conversion of Symbol into Integer
...lib/jsonapi_parameters/translator.rb:37:in `dig`

I would expect it to be parsed to:

tag_ids: [2, 3]

Thank you for this gem! 👍

nikajukic avatar May 26 '21 06:05 nikajukic

Thank you very much for contribution. We review your previous PR, which is nicely described.

We can take care of that as it's important feature and are adding it to backlog, but you are also welcome to post your solution to it 😄

choosen avatar May 26 '21 11:05 choosen

Thanks! 😄

I'm not promising anything, but I'll try to propose a solution soon 😄

nikajukic avatar May 26 '21 15:05 nikajukic