/**
  * __invoke is called by slim when a route matches
  * @param $request Request
  * @param $response Response
  * @param $args array
  * *
  * @return $response \Slim\Http\Response
  */
 public function __invoke(Request $request, Response $response, array $args)
 {
     parent::__invoke($request, $response, $args);
     //create
     if ($request->isPost()) {
         $this->createUser($request->getParsedBody());
     }
     //read
     if ($request->isGet()) {
         if (isset($args['id'])) {
             $this->getUser($args['id']);
         } else {
             $this->getAllUsers();
         }
     }
     //update
     if ($request->isPut()) {
         $this->updateUser($request->getParsedBody());
     }
     //delete
     if ($request->isDelete() && isset($args['id'])) {
         $this->deleteUser($args['id']);
     }
     return $this->response;
 }
 /**
  * __invoke is called by slim when a route matches
  * @param $request Request
  * @param $response Response
  * @param $args array
  * *
  * @return $response \Slim\Http\Response
  */
 public function __invoke(Request $request, Response $response, array $args)
 {
     parent::__invoke($request, $response, $args);
     if ($request->isPost()) {
         $this->createSession($request->getParsedBody());
     }
     if ($request->isGet() && isset($args['api_key'])) {
         $this->getSession($args['api_key']);
     }
     if ($request->isDelete() && isset($args['id'])) {
         $this->deleteSession($args['id']);
     }
     return $this->response;
 }