get('/', function (Request $request, Response $response, $args) { return $this->get('view')->render($response, 'frontend.html', []); })->setName('frontend'); $app->group('/api', function (RouteCollectorProxy $group): void { $group->post('/artikel', ArticleController::class . ':create')->setName('article.create'); $group->post('/artikel/{id}', ArticleController::class . ':update')->setName('article.update'); $group->delete('/artikel/{id}', ArticleController::class . ':delete')->setName('article.delete'); $group->get('/artikel/{id}/varianten', VariantController::class . ':list')->setName('article.list.variants'); $group->post('/varianten', VariantController::class . ':create')->setName('variant.create'); $group->post('/varianten/{id}', VariantController::class . ':update')->setName('variant.update'); $group->delete('/varianten/{id}', VariantController::class . ':list')->setName('variant.delete'); $group->get('/artikel[/{location}]', ArticleController::class . ':list')->setName('article.list'); $group->get('/dimension', DimensionController::class . ':list')->setName('dimension.list'); $group->get('/group', ArticleGroupController::class . ':list')->setName('group.list'); $group->post('/inventur', function (Request $request, Response $response, $args) { $directory = $this->get('upload_directory'); $uploadedFile = $request->getUploadedFiles()['file']; if ($uploadedFile->getError() === UPLOAD_ERR_OK) { $filename = moveUploadedFile($directory, $uploadedFile); $response->getBody()->write('uploaded ' . $filename . '
'); } return $response; }); $group->get('/excel', SpreadsheetController::class . ':create'); $group->get('/excel/download', SpreadsheetController::class . ':download'); }); $app->get('/migrate', MigrationController::class . ':migrate')->setName('migrate'); $app->get('/seed', MigrationController::class . ':seed')->setName('seed'); /** * Move Uploaded File to Target Destination * * Create random hexName * * @param String $directory Target Direcotry * @param UploadedFile $uploadedFile the File that was uploaded **/ function moveUploadedFile(string $directory, UploadedFile $uploadedFile): string { $extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION); $basename = bin2hex(random_bytes(8)); // see http://php.net/manual/en/function.random-bytes.php $filename = sprintf('%s.%0.8s', $basename, $extension); $uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $filename); return $filename; }