Modify Plugs.DataToAttributes to follow JSON API sideposting draft
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par le code DataToAttributes référencé dans l’issue et examinez la façon dont JaSerializer.Params.to_attributes gère les relations belongs-to. Consultez le JSON API sideposting draft et issue #1301 avant de modifier le comportement. C’est terminé lorsque les relations de tableau utilisent des identifiants temp-id pour sélectionner les enregistrements inclus correspondants, tandis que les relations de map restent gérées par JaSerializer.Params.to_attributes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Elixir
- Étoiles
- 234
- Forks
- 82
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de code-corps/code-corps-api
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
code-corps/code-corps-api#1385 ·
-
Cannot Create new GitHub AppOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
code-corps/code-corps-api#1384 ·
-
Track anon Users that registerOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
code-corps/code-corps-api#1383 · 2 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
code-corps/code-corps-api#1382 · 2 commentaires ·
-
Difficulty: Medium Skill: Elixir Time: 4 hours
code-corps/code-corps-api#1372 · 3 commentaires · 1 personne assignée ·
Toutes les issues de code-corps/code-corps-api
Issues similaires
-
Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
wintermeyer/vutuv#2363 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
hexlet-codebattle/codebattle#2361 ·
-
an Ash.Type.String field with a length constraints should expose min/maxLength in the schemaOuverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
ash-project/ash_ai#243 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
curator: add GRoguelon/sandboxesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
ajeetraina/awesome-docker-sbx#200 ·
-
L: github:actions T: feature-request
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
dependabot/dependabot-core#16480 ·
Les mainteneurs répondent en général sous 2 jours