code-corps / code-corps/code-corps-api
Modify Plugs.DataToAttributes to follow JSON API sideposting draft
- Ngôn ngữ chính
- Elixir
- Star
- 234
- Fork
- 82
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
# Problem
From https://github.com/json-api/json-api/pull/1197/files?short_path=571f6ce#diff-571f6cee9a492e0e177801c21a4b2b2a
Our current approach with included records is to simply assume they are related to the main record.
Based on the draft
- included record payloads should have `temp-id` properties if they are to be created.
- the main record payload should have a relationship where the identifier is `%{data: [%{"temp-id" => "foo", "type" => "bar"}`
- the plug should get those identifiers, then replace the identifier payloads with the associated full payloads matched in included
## Subtasks
- instead of just taking any `included` records and assuming they're relationships in the resulting params map, `DataToAttributes` should parse the `relationships` map first
- the relationship where `data` is a map is a belongs to and should be left alone. it's already handled by `JaSerializer.Params.to_attributes`
- the relationship where `data` is an array should be checked for identifiers with `temp-id` keys
- each `temp-id` should be found in the `included` section and added under the pluralized relationship key in the resulting map
An advantage of this is that we now are able to conclude it's definitely a `has_many`, so we do not need to explicitly specify this anymore.
## References
The code this needs to modify is part of #1301 so this is blocked until that is merged.
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.