attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); return $card; } public static function getAll(): array { return DB::$entityManager->getRepository(CardModel::class)->findAll(); } public static function listCards(): string { // get all cards $cards = self::getAll(); 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' => 'name', 'converted mana cost' => 'cmc', 'is uno reverse' => 'is_uno_reverse', ], ]); } public static function viewCard(Request $request): string { $route = $request->attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); return Template::render('card/card_view.twig', [ 'card' => $card ]); } public static function viewArtwork(Request $request): string { $route = $request->attributes->get('route'); $cardId = $route['id']; $artworkId = $route['artworkId']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); $artwork = DB::$entityManager->getRepository(Artwork::class)->find($artworkId); return Template::render('artwork/artwork_view.twig', [ 'card' => $card, 'artwork' => $artwork ]); } 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']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); foreach ($request->get('meta') as $key => $value) { $meta = $card->getMeta($key); if ($meta == null) { $meta = new CardMeta($key, $value); $card->addMeta($meta); } else { $meta->value = strval($value); } DB::save($meta); } DB::save($card); $response = new RedirectResponse('/card/' . $cardId); return $response; } public static function vote(Request $request) { var_dump('VOTE'); $route = $request->attributes->get('route'); $cardId = $route['id']; $card = DB::$entityManager->getRepository(CardModel::class)->find($cardId); $vote = new VoteCard(); $vote->value = intval($request->get('value')); $card->addVote($vote); DB::save($vote); DB::save($card); // TODO: redirect to last visited $response = new RedirectResponse('/card'); return $response; } }