Bonjour,
J’ai repris une partie du cours vapor 4 pour la partie User, ensuite j’ai crée une table category et un user peut crée plusieurs catégories et il vois que c’est catégories qu’ils à créent jusque la tout va bien.
pour qu’un user enregistre une catégorie il faut que je le json sois comme ça :
{
"name" : "travail5",
"user": {
"id": "48886976-57F4-4B1E-A08D-107A8953FECE"
}
}
ma function create dans le controller categorie
func create(req: Request) throws -> EventLoopFuture<Category> {
let user = try req.auth.require(User.self)
let category = try req.content.decode(Category.self)
return category.save(on: req.db).map { category }
}
tout fonctionne bien par contre je ne trouve pas logique que nous sommes obligé de mettre le user id dans l’envoi de la requête car nous l’avons dans la variable user.
J’ai essayer ceci :
let user = try req.auth.require(User.self)
let data = try req.content.decode(Category.self)
let category = Category(name: data.name, userID: user.id! as UUID)
return category.save(on: req.db).map { category }
mais cela ne fonctionne pas il me dit Value of type 'User' required for key 'user'
je pense que j’utilise mal cette méthode mais je ne vois pas trop la solution.
Ensuite pour afficher les catégories d’un user j’ai fait comme ceci :
func index(req: Request) throws -> EventLoopFuture<[Category]> {
let user = try req.auth.require(User.self)
return user.$categories.load(on: req.db).map{ user.categories}
}
Il y a une autre solution pour afficher les catégories d’ user ?
@mbritto il y aura une mise à jour du cours vapor avec des choses un peux plus complexe ?
Merci;