controller
Les controlleurs, les méthodes du CRUD & co.
Par défaut les controlleurs servent de lien entre les requêtes/réponses et le métier. Afin de simplifier les choses le FW met à disposition les méthodes basiques avec également une gestion basique. Le but n'est pas de faire des ces méthodes la couteau suisse qui fait tout, donc voici ce que permettent ces méthodes et leurs limitations.
Les méthodes décrites ci-dessous sont réservées à un fonctionnement RestFul. Pour d'autres controlleurs il faudra en créer de zéro avec leurs logiques, ...
Fonctionnement général
Ces méthodes ont besoin d'une instance ApiParams pour fonctionner, cette instance doit être disponible dans la requête sous forme de paramètre. Le middleware Api est censé savoir traduire les requêtes et réponses. Plus de détail ici
En retour il faut retourner une réponse avec le résultat, voici les options disponibles :
RĂ©ponses
Les données à retourner sont en général une instance qui hérite au minimum d'une des interfaces suivantes :
\FreeFW\Core\Model
\FreeFW\Core\StorageModel
\FreeFW\Core\StorageCacheModel
C'est de nouveau au middleware Api de savoir traduire les codes à retourner et non au controlleur de gérer cette logique.
createSuccessAddResponse
Retourne une réponse OK pour une création (2*). Cette méthode est prévue pour recevoir en paramètre des données, en général l'élément créé.
createSuccessUpdateResponse
Retourne une réponse OK pour une modification (2*). Cette méthode est prévue pour recevoir en paramètre des données, en général l'élément modifié
createSuccessRemoveResponse
Retourne une réponse OK pour une suppression (2*). Cette méthode n'attend pas de paramètre.
createSuccessEmptyResponse
Retourne une réponse OK (2*) sans contenu. A n'utiliser que si les précédentes réponses ne conviennent pas.
createSuccessOkResponse
Retourne une réponse OK (2*). Cette méthode est prévue pour recevoir en paramètre des données. A n'utiliser que si les précédentes réponses ne conviennent pas.
createErrorResponse
Retourne une réponse >= 4*. Le premier paramètre est le code principal de l'erreur, le second les données.
Les méthodes suivantes permettent de gérer les erreurs sur l'instance :
getErrors : retourne les erreurs
addErrors : ajoute un tableau d'erreurs
addError : ajoute une erreurs
hasErrors : retourne vrai si il y a des erreurs
MĂ©thodes standards
Ces méthodes sont à utiliser pour des appels simples
getAll : la recherche
tout se passe bien : OK + datas demandées
rien n'a été trouvé : OK + datas = []
getOne : retourne un élément spécifique selon son ID
tout se passe bien : OK + data demandée
rien n'a été trouvée : Erreur 666007 = 'not found'
si id <0 : Erreur 666006 = 'Id id mandatory'
si id n'est pas renseigné ou 0 : OK + model initialisé
createOne : création et retourne l'élement créé
tout se passe bien : ADD + datas insérées
erreur pendant l'insert : Erreur 666011 = errors ou 'not insert' si y a pas d'errors
il n'y a pas de données envoyées : Erreur 666008 = 'no data'
updateOne : modification et retourne l'élément modifié
tout se passe bien : OK + datas modifiées
erreur pendant l'update : Erreur 666009 = errors ou 'not update' si y a pas d'errors
l'id qu'on veut modifier n'existe pas : Erreur 666012 = 'Id is unavailable'
il n'y a pas de données envoyées : Erreur 666008 = 'no data'
l'id qu'on veut modifier n'est pas >0 ou pas renseigné : Erreur 666006 = 'Id is mandatory'
removeOne : suppression
tout se passe bien : OK
erreur pendant le delete : Erreur 666010 = errors ou 'not delete' si y a pas d'errors
l'id qu'on veut supprimer n'existe pas : Erreur 666012 = 'Id is unavailable'
l'id qu'on veut supprimer n'est pas >0 ou pas renseigné : Erreur 666006 = 'Id is mandatory'
Dernière mise à jour
Cet article vous a-t-il été utile ?