/** * @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()); }
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()); }
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(); } }
/** * @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()); }