public function __invoke(array $input)
 {
     $payload = new Payload();
     $username = "******";
     $token = $this->token;
     $payload->withStatus(Payload::OK);
     return $payload->withOutput(['user' => $token->getMetadata('username'), 'token' => $token->getToken()]);
 }
 public function __invoke(array $input)
 {
     $payload = new Payload();
     $payload->setStatus(Payload::FOUND);
     $output = [];
     if (!empty($input['user_id']) && ($user_id = $input['user_id'])) {
         $shifts = array_values(array_filter($this->shifts, function ($shift) use($user_id) {
             return $shift['user_id'] == $user_id;
         }));
         $output["meta"]["filters"]["user_id"] = (int) $user_id;
     } else {
         $shifts = $this->shifts;
     }
     $output["shifts"] = $shifts;
     $payload->setOutput($output);
     return $payload;
 }