<?php namespace LQDN\Handler; use Doctrine\DBAL\Connection; use LQDN\Command\UserUpdateByAdminCommand; use LQDN\Command\UserUpdateTotalCommand; use LQDN\Command\UserUpdateCumulCommand; use LQDN\Command\UserCreateCommand; class UserHandler { private $connection; public function __construct(Connection $connection) { $this->connection = $connection; } /** * Update of a user from the admin. * * @param UserUpdateByAdminCommand $command */ public function handleUserUpdateByAdminCommand(UserUpdateByAdminCommand $command) { $this->connection->executeUpdate('UPDATE users SET pseudo = :username, email = :email, commentaire = :comment WHERE id = :id', [ 'username' => $command->getUsername(), 'email' => $command->getEmail(), 'comment' => $command->getComment(), 'id' => $command->getId(), ]); } /** * Create a user in database * * @param UserCreateCommand $command */ public function handleUserCreateCommand(UserCreateCommand $command) { $this->connection->executeUpdate('INSERT INTO users(email, hash, pseudo, total, cumul) VALUES (:email, :hash, :pseudo, :total, :cumul)', [ 'email'=> $command->getEmail(), 'hash'=> $command->getHash(), 'pseudo'=> $command->getPseudo(), 'total'=> $command->getTotal(), 'cumul'=> $command->getCumul(), ]); } /** * Update the user total * * @param UserUpdateTotalCommand $command */ public function handleUserUpdateTotalCommand(UserUpdateTotalCommand $command) { $this->connection->executeUpdate( 'UPDATE users SET total = :total WHERE id = :id', [ 'total' => $command->getTotal(), 'id'=> $command->getId() ] ); } /** * Update the user cumul * * @param UserUpdateCumulCommand $command */ public function handleUserUpdateCumulCommand(UserUpdateCumulCommand $command) { $this->connection->executeUpdate( 'UPDATE users SET cumul = :cumul WHERE id = :id', [ 'cumul' => $command->getCumul(), 'id' => $command->getId(), ] ); } }