public function addSubreddit(LinkParser $linkParser) { if ($this->linkExists($this->arrayWithSubreddits, $linkParser->getSubredditUrl())) { throw new Exception("You're already subscribed to this subreddit"); } else { $id = $this->discoverId($this->arrayWithSubreddits); $this->arrayWithSubreddits[$id] = $linkParser->getSubredditUrl(); return $id; } }
<?php include_once '../config.php'; require_once ROOT_NAME . "/src/classes/LinkParser.php"; require_once ROOT_NAME . "/src/classes/CookieManager.php"; require_once ROOT_NAME . "/src/classes/SubredditsFactory.php"; require_once ROOT_NAME . "/src/classes/SubredditDownloader.php"; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $url = $_POST["subreddit"]; try { $linkParser = new LinkParser($url); $cookieManager = new CookieManager($_COOKIE); $downloader = new SubredditDownloader($linkParser->getSubredditUrl()); $idInCookie = $cookieManager->addSubreddit($linkParser); $cookieManager->setCookie(); $subreddit = new Subreddit($downloader); echo json_encode(['id' => $idInCookie, 'subreddit' => $subreddit]); } catch (Exception $e) { echo json_encode($e->getMessage()); } } elseif ($_SERVER['REQUEST_METHOD'] === 'GET') { $id = $_GET["id"]; try { $cookieManager = new CookieManager($_COOKIE); $subreddit = SubredditsFactory::create($cookieManager, $id); echo json_encode(['id' => $id, 'subreddit' => $subreddit]); } catch (Exception $e) { echo json_encode($e->getMessage()); } }