Ejemplo n.º 1
0
 /**
  * @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));
 }
Ejemplo n.º 2
0
 /**
  * @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));
 }
Ejemplo n.º 3
0
 /**
  * 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);
 }