|
|
@@ -0,0 +1,31 @@
|
|
|
+# Nouvelles entités
|
|
|
+
|
|
|
+## Modèles
|
|
|
+
|
|
|
+Ajouter au modèle de données les entités suivantes :
|
|
|
+- `PostalAddress` : contient des champs décrivant une adresse postale et un type qui peut prendre une valeur dans la liste suivante : 'home', 'work'
|
|
|
+ - une `PostalAddress` appartient à une `Person`
|
|
|
+ - une `Person` dispose de plusieurs `PostalAddress`
|
|
|
+ - les `PostalAddress` sont supprimées avec la `Person`
|
|
|
+- `Phone` : contient un champ décrivant un numéro de téléphone et un type qui peut prendre une valeur dans la liste suivante : 'home', 'work'
|
|
|
+ - un `Phone` appartient à une `Person`
|
|
|
+ - une `Person` dispose de plusieurs `Phone`
|
|
|
+ - les `Phone` sont supprimés avec la `Person`
|
|
|
+
|
|
|
+## Contrôleurs
|
|
|
+
|
|
|
+Créer les contrôleurs offrant les méthodes pour manipuler ces entités (sur le même modèle que le contrôleur de `MailAddress`).
|
|
|
+
|
|
|
+## Routes
|
|
|
+
|
|
|
+Ajouter les définitions de routes correspondantes.
|
|
|
+
|
|
|
+# Filtrage
|
|
|
+
|
|
|
+Ajouter la possibilité de filtrer la récupération des entités `MailAddress`, `PostalAddress` et `Phone` en fonction de la valeur de leur champ `type`.
|
|
|
+Pour cela, on ajoutera la gestion d'un attribut `type` dans la query string des routes du type `GET /person/:person_id/mailAddress`.
|
|
|
+Si cet attribut est présent, on ne renverra que les entités du type correspondant.
|
|
|
+
|
|
|
+Ajouter la possibilité de filtrer la récupération des `Person` en fonction de leur nom.
|
|
|
+Pour cela, on ajoutera la gestion d'un attribut `lastname` dans la query string de la route `GET /person`.
|
|
|
+Si cet attribut est présent, on ne renverra que les entités dont l'attribut `lastname` contient la chaîne fournie.
|