attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); return $card; } public static function getAll(): array { // TODO: is that correct? yes - how to call this getAll? return DB::$entityManager->getRepository(CardModel::class)->findAll(); } public static function listCards(): string { // get all cards $cards = DB::$entityManager->getRepository(CardModel::class)->findAll(); return Template::render('card/card_list.twig', [ 'cards' => $cards ]); } public static function addCard(): string { // TODO: how to access all available meta? return Template::render('card/card_add.twig', [ 'fields' => [ 'name' => 'meta[name]', 'converted mana cost' => 'meta[cmc]', 'is uno reverse' => 'meta[is_uno_reverse]', ], ]); } public static function displayCard(Request $request): string { $route = $request->attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); return Template::render('card/card_display.twig', [ 'card' => $card ]); } public static function editCard(Request $request) { $route = $request->attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); $metas = DB::$entityManager->getRepository(CardMeta::class)->findAll(); return Template::render('card/card_edit.twig', [ 'card' => $card ]); } public static function add(Request $request) { $card = new CardModel(); foreach ($request->get('meta') as $key => $value) { $meta = new CardMeta($key, $value); $card->addMeta($meta); DB::save($meta); } /**@var UploadedFile[] $files*/ if ($files = $request->files->get('images')) { foreach ($files as $file) { $image = Artwork::fromUploadedFile($file); /*TEST*/ for ($i = 0; $i <= rand(0, 40); $i++) { $vote = new VoteArtwork(); $vote->value = rand(-1, 1) >= 0 ? 1 : -1; $image->addVote($vote); DB::save($vote); } /*TEST*/ $card->addArtwork($image); DB::save($image); } } /*TEST*/ for ($i = 0; $i <= rand(0, 60); $i++) { $vote = new VoteCard(); $vote->value = rand(-1, 1) > 0 ? 1 : -1; $card->addVote($vote); DB::save($vote); } /*TEST*/ DB::save($card); $response = new RedirectResponse('/card/' . $card->id); return $response; } public static function edit(Request $request) { $route = $request->attributes->get('route'); $cardId = $route['id']; // TODO: like add but edit $response = new RedirectResponse('/card/' . $cardId); return $response; } }