code-corps / code-corps/code-corps-api

Modify Plugs.DataToAttributes to follow JSON API sideposting draft

Đang mở
#1,303 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
blocked
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

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.