Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Interaction;
- use Request;
- use Response;
- use RepositoryInterface;
- use Validator;
- use ValidationObject;
- class Interaction{
- public function __construct(Repository $repository,Valdiator $validator){
- $this->repository = $repository;
- $this->validator = $validaotr;
- }
- public function invoke(Request $request){
- $validationObject = new ValidationObject();
- $validationObject->isUniqueUsername = !$this->repository->findByUsername($request->getUsername());
- $this->validator->setObject($validationObject);
- if($this->validator->isValid()){
- $newId = $this->repository->getFreeID();
- $newEntity = $this->repository->createEntity($newId,$request->getUsername());
- $this->repository->add($newEntity);
- return new Response($newEntity);
- }else{
- throw new \Exception;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement