} 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); } if ($_SESSION["profile"]->getProfileId() !== $follower->getFollowerFollowerId()) { throw new \RuntimeException("Only the follower can stop following."); } $tempName = Profile::getProfilebyProfileId($pdo, $follower->getFollowerFollowedId())->getProfileHandle(); $follower->delete($pdo); $deletedObject = new stdClass(); $deletedObject->followerFollowerId = $followerFollowerId; $deletedObject->followerFollowedId = $followerFollowedId; $reply->message = "You are no longer following " . $tempName; } } elseif (empty($method) === false && $method !== "GET") { //If a non-admin attempted to access anything other than GET, throw an error at them
/** * Test grabbing a relationship where neither follower nor followed exist **/ public function testGetInvalidFollowerByFollowerIdAndFollowedId() { //Grab a follower id and followed id that do not exist $follow = Follower::getFollowerByFollowerIdAndFollowedId($this->getPDO(), JpegeryTest::INVALID_KEY, JpegeryTest::INVALID_KEY); $this->assertNull($follow); }