ApplicationService = new ApplicationService(); } public function Root(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) { // Schema migration is done here $databaseMigrationService = new DatabaseMigrationService(); $databaseMigrationService->MigrateDatabase(); if (GROCY_MODE === 'dev' || GROCY_MODE === 'demo' || GROCY_MODE === 'prerelease') { $demoDataGeneratorService = new DemoDataGeneratorService(); $demoDataGeneratorService->PopulateDemoData(); } return $response->withRedirect($this->AppContainer->get('UrlManager')->ConstructUrl($this->GetEntryPageRelative())); } /** * Get the entry page of the application based on the value of the entry page setting. * * We fallback to the about page when no entry page is specified or * when the specified entry page has been disabled. * * @return string */ private function GetEntryPageRelative() { if (defined('GROCY_ENTRY_PAGE')) { $entryPage = constant('GROCY_ENTRY_PAGE'); } else { $entryPage = 'stock'; } // Stock if ($entryPage === 'stock' && constant('GROCY_FEATURE_FLAG_STOCK')) { return '/stockoverview'; } // Shoppinglist if ($entryPage === 'shoppinglist' && constant('GROCY_FEATURE_FLAG_SHOPPINGLIST')) { return '/shoppinglist'; } // Recipes if ($entryPage === 'recipes' && constant('GROCY_FEATURE_FLAG_RECIPES')) { return '/recipes'; } // Chores if ($entryPage === 'chores' && constant('GROCY_FEATURE_FLAG_CHORES')) { return '/choresoverview'; } // Tasks if ($entryPage === 'tasks' && constant('GROCY_FEATURE_FLAG_TASKS')) { return '/tasks'; } // Batteries if ($entryPage === 'batteries' && constant('GROCY_FEATURE_FLAG_BATTERIES')) { return '/batteriesoverview'; } if ($entryPage === 'equipment' && constant('GROCY_FEATURE_FLAG_EQUIPMENT')) { return '/equipment'; } // Calendar if ($entryPage === 'calendar' && constant('GROCY_FEATURE_FLAG_CALENDAR')) { return '/calendar'; } // Meal Plan if ($entryPage === 'mealplan' && constant('GROCY_FEATURE_FLAG_RECIPES')) { return '/mealplan'; } return '/about'; } public function About(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) { return $this->View->render($response, 'about', [ 'system_info' => $this->ApplicationService->GetSystemInfo(), 'changelog' => $this->ApplicationService->GetChangelog() ]); } public function BarcodeScannerTesting(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) { return $this->View->render($response, 'barcodescannertesting'); } }