viewHandler = $viewHandler; $this->formats = $formats; $this->timesheetConfiguration = $timesheetConfiguration; } /** * Returns the user specific locale configuration * * @SWG\Response( * response=200, * description="Returns the locale specific configurations for this user", * @SWG\Schema(ref="#/definitions/I18nConfig") * ) * * @Rest\Get(path="/config/i18n") * * @ApiSecurity(name="apiUser") * @ApiSecurity(name="apiToken") */ public function i18nAction(): Response { /** @var User $user */ $user = $this->getUser(); $locale = $user->getLocale(); $model = new I18n(); $model ->setFormDateTime($this->formats->getDateTimeTypeFormat($locale)) ->setFormDate($this->formats->getDateTypeFormat($locale)) ->setDateTime($this->formats->getDateTimeFormat($locale)) ->setDate($this->formats->getDateFormat($locale)) ->setDuration($this->formats->getDurationFormat($locale)) ->setTime($this->formats->getTimeFormat($locale)) ->setIs24hours($this->formats->isTwentyFourHours($locale)) ; $view = new View($model, 200); $view->getContext()->setGroups(['Default', 'Config']); return $this->viewHandler->handle($view); } /** * Returns the instance specific timesheet configuration * * @SWG\Response( * response=200, * description="Returns the instance specific timesheet configuration", * @SWG\Schema(ref="#/definitions/TimesheetConfig") * ) * * @Rest\Get(path="/config/timesheet") * * @ApiSecurity(name="apiUser") * @ApiSecurity(name="apiToken") */ public function timesheetConfigAction(): Response { $model = new TimesheetConfig(); $model ->setTrackingMode($this->timesheetConfiguration->getTrackingMode()) ->setDefaultBeginTime($this->timesheetConfiguration->getDefaultBeginTime()) ->setActiveEntriesHardLimit($this->timesheetConfiguration->getActiveEntriesHardLimit()) ->setActiveEntriesSoftLimit($this->timesheetConfiguration->getActiveEntriesSoftLimit()) ->setIsAllowFutureTimes($this->timesheetConfiguration->isAllowFutureTimes()) ; $view = new View($model, 200); $view->getContext()->setGroups(['Default', 'Config']); return $this->viewHandler->handle($view); } }