//Sanitize inputs $followerFollowedId = filter_input(INPUT_GET, "{$followerFollowedId}", FILTER_VALIDATE_INT); //Make sure the id matches what the relevant method requires if ($method === "DELETE" && (empty($followerFollowerId) === true || $followerFollowerId < 0 || (empty($followerFollowedId) === true || $followerFollowedId < 0))) { throw new \InvalidArgumentException("Improper ID", 405); } if ($method === "GET") { //Set an XSRF cookie on 'get' requests setXsrfCookie("/"); //Get the listing based on the current field if (empty($followerFollowerId) === false && empty($followerFollowedId) === false) { $reply->data = Follower::getFollowerByFollowerIdAndFollowedId($pdo, $followerFollowerId, $followerFollowedId); } elseif (empty($followerFollowerId) === false) { $reply->data = Follower::getFollowerByFollowerId($pdo, $followerFollowerId)->toArray(); } elseif (empty($followerFollowedId) === false) { $reply->data = Follower::getFollowerByFollowedId($pdo, $followerFollowedId)->toArray(); } if (empty($_SESSION["profile"]) === false) { if ($method === "POST") { verifyXsrf(); $requestContent = file_get_contents("php://input"); $requestObject = json_decode($requestContent); $follow = new Follower($requestObject->followerFollowerId, $requestObject->followerFollowedId); $follow->insert($pdo); $tempName = Profile::getProfilebyProfileId($pdo, $requestObject->followerFollowedId)->getProfileHandle(); $reply->message = "You are now following " . $tempName; } elseif ($method === "DELETE") { $follower = Follower::getFollowerByFollowerIdAndFollowedId($pdo, $followerFollowerId, $followerFollowedId); if ($follower === null) { throw new \RuntimeException("relationship does not exist", 404); }
/** * Test grabbing a Follow relationship with a Followed id that cannot exist **/ public function testGetInvalidFollowByFollowedId() { //Search for a followed id that cannot exist $follow = Follower::getFollowerByFollowedId($this->getPDO(), JpegeryTest::INVALID_KEY); $this->assertCount(0, $follow); }