/** * @vcr PersonTests/testDeleteDiscussionReference.json * @link https://familysearch.org/developers/docs/api/tree/Delete_Discussion_Reference_usecase */ public function testDeleteDiscussionReference() { $factory = new FamilyTreeStateFactory(); $this->collectionState($factory); $userState = $this->collectionState()->readCurrentUser(); $discussion = DiscussionBuilder::createDiscussion($userState->getUser()->getTreeUserId()); /** @var DiscussionState $discussionState */ $discussionState = $this->collectionState()->addDiscussion($discussion); $this->queueForDelete($discussionState); $ref = new DiscussionReference(); $ref->setResource($discussionState->getSelfUri()); /** @var FamilyTreePersonState $person */ $person = $this->collectionState()->readPersonForCurrentUser(); $newState = $person->deleteDiscussionReference($ref); $this->assertEquals(HttpStatus::NO_CONTENT, $newState->getStatus(), $this->buildFailMessage(__METHOD__, $newState)); }
/** * @vcr DiscussionsTests/testDeleteDiscussionReference.json * @link https://familysearch.org/developers/docs/api/tree/Delete_Discussion_Reference_usecase */ public function testDeleteDiscussionReference() { $factory = new FamilyTreeStateFactory(); $this->collectionState($factory); $testSubject = $this->createPerson(); $userState = $this->collectionState()->readCurrentUser(); $discussion = DiscussionBuilder::createDiscussion($userState->getUser()->getTreeUserId()); $discussionState = $this->collectionState()->addDiscussion($discussion); $this->queueForDelete($discussionState); $ref = new DiscussionReference(); $ref->setResource($discussionState->getSelfUri()); $newState = $testSubject->deleteDiscussionReference($ref); $this->assertAttributeEquals(HttpStatus::NO_CONTENT, "statusCode", $newState->getResponse(), $this->buildFailMessage(__METHOD__, $newState)); }
/** * Delete a discussion reference * * @param \Gedcomx\Extensions\FamilySearch\Platform\Tree\DiscussionReference $reference * @param \Gedcomx\Rs\Client\Options\StateTransitionOption $option,... * * @throws \Gedcomx\Rs\Client\Exception\GedcomxApplicationException * @return FamilyTreePersonState */ public function deleteDiscussionReference(DiscussionReference $reference, StateTransitionOption $option = null) { $link = null; if ($reference->getLinks() != null) { $link = $reference->getLink(Rel::DISCUSSION_REFERENCE); if ($link == null) { $link = $reference->getLink(Rel::SELF); } } if ($link == null) { $link = new Link(); $link->setHref($reference->getResource()); } if ($link == null || $link->getHref() == null) { throw new GedcomxApplicationException("Discussion reference cannot be deleted: missing link."); } $request = $this->createAuthenticatedRequest('DELETE', $link->getHref(), FamilySearchRequest::getMediaTypes()); return $this->stateFactory->createState('PersonState', $this->client, $request, $this->passOptionsTo('invoke', array($request), func_get_args()), $this->accessToken); }