Example #1
0
 /**
  * @link https://familysearch.org/developers/docs/api/cv/Read_Vocabulary_Term,_Alternate_Language_usecase
  */
 public function testReadVocabularyTermAlternateLanguage()
 {
     $lang = "fr";
     $factory = new FamilySearchStateFactory();
     /** @var \Gedcomx\Extensions\FamilySearch\Rs\Client\FamilySearchPlaces $collection */
     $collection = $factory->newPlacesState()->authenticateViaOAuth2Password(SandboxCredentials::USERNAME, SandboxCredentials::PASSWORD, SandboxCredentials::API_KEY);
     $listState = $collection->readPlaceTypes();
     $this->assertNotnull($listState);
     $this->assertNotNull($listState->ifSuccessful());
     $this->assertNotNull($listState->getVocabElementList());
     $elements = $listState->getVocabElementList()->getElements();
     $this->assertnotnull($elements);
     $inFrench = new HeaderParameter(true, 'Accept-Language', $lang);
     $type = $collection->readPlaceTypeById(array_shift($elements)->getId(), $inFrench);
     $this->assertNotNull($type);
     $this->assertEquals(HttpStatus::OK, $type->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__, $type));
     $element = $type->getVocabElement();
     $this->assertNotEmpty($element);
     $descriptions = $element->getDescriptions();
     $labels = $element->getLabels();
     $this->assertNotNull($descriptions);
     $this->assertNotNull($labels);
     $this->assertGreaterThan(0, count($descriptions));
     $this->assertGreaterThan(0, count($labels));
     /** @var \Gedcomx\Common\TextValue $desc */
     $desc = array_shift($descriptions);
     /** @var \Gedcomx\Common\TextValue $label */
     $label = array_shift($labels);
     $this->assertEquals($lang, $desc->getLang());
     $this->assertEquals($lang, $label->getLang());
 }
Example #2
0
 public function testDateAuthority()
 {
     $factory = new FamilySearchStateFactory();
     $collections = $factory->newDiscoveryState()->readSubcollections()->getCollections();
     $link = null;
     foreach ($collections as $record) {
         if ($record->getId() == "FSDA") {
             $link = $record->getLink(Rel::SELF);
             break;
         }
     }
     $dateState = $factory->newCollectionState($link->getHref());
     $normalized = $dateState->normalizeDate("26 Nov 1934");
     $this->assertEquals('gedcomx-date:+1934-11-26', $normalized->getFormal(), "Formalized date format incorrect: " . $normalized->getFormal());
     $extensions = $normalized->getNormalizedExtensions();
     $this->assertEquals('26 November 1934', $extensions[0]->getValue(), "Normalized date format incorrect: " . $extensions[0]->getValue());
 }
Example #3
0
 private function fetchVocabElements()
 {
     if ($this->vocabElements == null) {
         $factory = new FamilySearchStateFactory();
         $this->collection = $factory->newPlacesState()->authenticateViaOAuth2Password(SandboxCredentials::USERNAME, SandboxCredentials::PASSWORD, SandboxCredentials::API_KEY);
         $this->vocabListState = $this->collection->readPlaceTypes();
         $this->vocabElements = $this->vocabListState->getVocabElementList()->getElements();
     }
 }
Example #4
0
 /**
  * @link https://familysearch.org/developers/docs/api/memories/Upload_Story_usecase
  * SDK only supports uploading via multi-part form uploads.
  */
 public function testUploadStory()
 {
     $filename = ArtifactBuilder::makeTextFile();
     $artifact = new DataSource();
     $artifact->setFile($filename);
     $description = SourceBuilder::newSource();
     $factory = new FamilySearchStateFactory();
     /** @var FamilySearchMemories $memories */
     $memories = $factory->newMemoriesState();
     $memories = $this->authorize($memories);
     $this->assertNotEmpty($memories->getAccessToken());
     $upload = $memories->addArtifact($artifact, $description);
     $this->queueForDelete($upload);
     $this->assertEquals(HttpStatus::CREATED, $upload->getStatus(), $this->buildFailMessage(__METHOD__, $upload));
     $upload = $upload->get();
     $this->assertEquals(HttpStatus::OK, $upload->getStatus());
 }