visualitypl / jsonapi_parameters

Rails-way to consume JSON:API input
https://rubygems.org/gems/jsonapi_parameters
MIT License
58 stars 8 forks source link

Support array data for updating to-many relationships #56

Open nikajukic opened 3 years ago

nikajukic commented 3 years ago

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! 👍

choosen commented 3 years ago

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 😄

nikajukic commented 3 years ago

Thanks! 😄

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