You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
web-ruby/tps/sem4/README.md

2.0 KiB

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 :

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.