Modify Plugs.DataToAttributes to follow JSON API sideposting draft
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginnen Sie mit dem im Issue referenzierten DataToAttributes-Code und überprüfen Sie, wie JaSerializer.Params.to_attributes Beziehungen vom Typ belongs-to behandelt. Prüfen Sie den JSON API sideposting draft und issue #1301, bevor Sie das Verhalten ändern. Als erledigt gilt die Aufgabe, wenn Array-Beziehungen temp-id-Identifiers verwenden, um übereinstimmende inkludierte Datensätze auszuwählen, während Map-Beziehungen weiterhin von JaSerializer.Params.to_attributes behandelt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
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-idproperties 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
includedrecords and assuming they're relationships in the resulting params map,DataToAttributesshould parse therelationshipsmap first- the relationship where
datais a map is a belongs to and should be left alone. it's already handled byJaSerializer.Params.to_attributes - the relationship where
datais an array should be checked for identifiers withtemp-idkeys- each
temp-idshould be found in theincludedsection and added under the pluralized relationship key in the resulting map
- each
- the relationship where
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.
- Vorherrschende Sprache
- Elixir
- Sterne
- 234
- Forks
- 82
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus code-corps/code-corps-api
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
code-corps/code-corps-api#1385 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
code-corps/code-corps-api#1384 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
code-corps/code-corps-api#1383 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
code-corps/code-corps-api#1382 · 2 Kommentare ·
-
Difficulty: Medium Skill: Elixir Time: 4 hours
code-corps/code-corps-api#1372 · 3 Kommentare · 1 zugewiesene Person ·
Alle Issues in code-corps/code-corps-api
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
carverauto/serviceradar#4596 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
agentjido/jido_harness#80 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
sevenseacat/cinder#235 ·