diff --git a/tps/sem4/README.md b/tps/sem4/README.md new file mode 100644 index 0000000..165611f --- /dev/null +++ b/tps/sem4/README.md @@ -0,0 +1,83 @@ +-- +layout: post +title: "TP4 de web ruby - Gladiator" +categories: ruby-2a +--- + +# Gladiator + +Ce TP a pour but de vous faire créer une API JSON Rails et de vous familiariser avec : + +* La gestion des paramètres (`params`) +* La découverte d'un nouveau concept de `params` validé : les `StrongParams` +* Pratiquer les migrations +* Utiliser des scopes +* Comment écrire une API avec Rails + +## Repartir du TP précédent ou repartir de zéro + +Vous pouvez repartir du TP précédent, c'est du travail de gagné sur ce TP et vous pourrez modifier la vue du welcome (`/`) pour ajouter du détail sur les créatures au fur et à mesure. + +Pensez à modifier `to_label` si c'est le cas. + +Si vous repartez de zéro, n'oubliez pas d'ajouter le modèle créature avec les commande suivantes : + +```ruby +rails g model Creature name:string health_points:integer +rails db:migrate +``` + +## Params, où sont mes params ? + +1. Rappel sur les params + +2. Rappel API JSON + +3. Explications des strong params + +## Fais rouler les dés + +Contrôleur DiceRollsController + +Créer un diceroll => Ça retourne les jetés de dés, on peut lancer qu'un d2, d4, d6, d8, d10, d20, d100 +ça retourne le jet de dés (paramètre facultatif pour le nombre de lancer) + +`$render $params` + +## Ajout d'un CRUD de créature + +### CRUD + +`$strong_params` + +On supportera uniquement le renommage + +### Scoping aux créatures vivantes + +nommer le scope `encore_vivants` en se basant sur pv > 0 + +Supporter le renommage que des créatures vivantes + +### Ajout d'un enum vivant + +migration + màj des données + +nommer l'enum status + +utiliser le scope `alives` + +## Ajout d'une nouvelle ressource Combat + +Ajouter une ressource combat où on fait combattre deux créatures + +pour le combat, les créatures se soutraient mutuellement leurs PVs 1 fois + +foreign_key `winner_id`, `loser_id` + +le résultat du combat doit être écrit dans la resource combat (death ou draw, utiliser un enum) + +FK, index, s'assurer qu'une créature ne se combat pas elle même + +## Rechercher des combats + +On veut pouvoir rechercher un combat par nom de créature et par résultat. \ No newline at end of file