/** * Send a request with no payload. */ private ResponseEntity retrieveResponseFromRequest( final String method, final String uri, final int responseCode, final MediaType accept, final List<Pair<String,Predicate<String>>> headerFields ) { ClientRequest request; try { request = withHeaders( REQUEST_BUILDER ).accept( accept ).build( new URI( uri ), method ); } catch ( URISyntaxException e ) { throw new RuntimeException( e ); } return retrieveResponse( uri, responseCode, accept, headerFields, request ); }
/** * Send a request with payload. */ private ResponseEntity retrieveResponseFromRequest( final String method, final String uri, final String payload, final MediaType payloadType, final int responseCode, final MediaType accept, final List<Pair<String,Predicate<String>>> headerFields ) { ClientRequest request; try { if ( payload != null ) { request = withHeaders( REQUEST_BUILDER ).type( payloadType ).accept( accept ).entity( payload ) .build( new URI( uri ), method ); } else { request = withHeaders( REQUEST_BUILDER ).accept( accept ).build( new URI( uri ), method ); } } catch ( URISyntaxException e ) { throw new RuntimeException( e ); } return retrieveResponse( uri, responseCode, accept, headerFields, request ); }
public ChildAndParentsRelationshipState addChildAndParentsRelationship(ChildAndParentsRelationship chap, StateTransitionOption... options) { Link link = getLink(org.gedcomx.rs.Rel.RELATIONSHIPS); if (link == null || link.getHref() == null) { throw new GedcomxApplicationException(String.format("FamilySearch Family Tree at %s didn't provide a 'relationships' link.", getUri())); } FamilySearchPlatform entity = new FamilySearchPlatform(); entity.setChildAndParentsRelationships(Arrays.asList(chap)); ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.POST); request.setEntity(entity); return ((FamilyTreeStateFactory)this.stateFactory).newChildAndParentsRelationshipState(request, invoke(request, options), this.accessToken); }
public PlaceDescriptionState readPlaceDescription(Entry place, StateTransitionOption... options) { Link link = place.getLink(Rel.DESCRIPTION); link = link == null ? place.getLink(Rel.SELF) : link; if (link == null || link.getHref() == null) { return null; } ClientRequest request = createAuthenticatedGedcomxRequest().build(link.getHref().toURI(), HttpMethod.GET); return ((FamilySearchStateFactory)this.stateFactory).newPlaceDescriptionState(request, invoke(request, options), this.accessToken); }
public DiscussionsState readDiscussions(StateTransitionOption... options) { Link link = getLink(Rel.DISCUSSIONS); if (link == null || link.getHref() == null) { return null; } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.GET); return ((FamilySearchStateFactory)this.stateFactory).newDiscussionsState(request, invoke(request, options), this.accessToken); }
public ClientResponse readPortrait(StateTransitionOption... options) { Link link = getLink(Rel.PORTRAIT); if (link == null || link.getHref() == null) { return null; } ClientRequest request = createAuthenticatedGedcomxRequest().build(link.getHref().toURI(), HttpMethod.GET); return invoke(request, options); }
public SourceDescriptionsState readPortraits(StateTransitionOption... options) { Link link = getLink(Rel.PORTRAITS); if (link == null || link.getHref() == null) { return null; } ClientRequest request = createAuthenticatedGedcomxRequest().build(link.getHref().toURI(), HttpMethod.GET); return ((FamilySearchStateFactory)this.stateFactory).newSourceDescriptionsState(request, invoke(request, options), this.accessToken); }
public ChangeHistoryState restoreChange(Entry change, StateTransitionOption... options) { Link link = change.getLink(org.familysearch.api.client.Rel.RESTORE); if (link == null || link.getHref() == null) { throw new GedcomxApplicationException("Unrestorable change: " + change.getId()); } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.POST); return ((FamilySearchStateFactory)this.stateFactory).newChangeHistoryState(request, invoke(request, options), this.accessToken); } }
public RelationshipsState addChildAndParentsRelationships(List<ChildAndParentsRelationship> chaps, StateTransitionOption... options) { Link link = getLink(org.gedcomx.rs.Rel.RELATIONSHIPS); if (link == null || link.getHref() == null) { throw new GedcomxApplicationException(String.format("FamilySearch Family Tree at %s didn't provide a 'relationships' link.", getUri())); } FamilySearchPlatform entity = new FamilySearchPlatform(); entity.setChildAndParentsRelationships(chaps); ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.POST); request.setEntity(entity); return ((FamilyTreeStateFactory)this.stateFactory).newRelationshipsState(request, invoke(request, options), this.accessToken); }
public CollectionState readCollection(StateTransitionOption... options) { Link link = getLink(Rel.COLLECTION); if (link == null || link.getHref() == null) { return null; } ClientRequest request = createAuthenticatedGedcomxRequest().build(link.getHref().toURI(), HttpMethod.GET); return ((FamilySearchStateFactory)this.stateFactory).newCollectionState(request, invoke(request, options), this.accessToken); }
public PersonNonMatchesState removeNonMatch(Person nonMatch, StateTransitionOption... options) { Link link = nonMatch.getLink(Rel.NOT_A_MATCH); if (link == null || link.getHref() == null) { return null; } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.DELETE); return ((FamilySearchStateFactory)this.stateFactory).newPersonNonMatchesState(request, invoke(request, options), this.accessToken); }
public ChildAndParentsRelationshipState deleteFather(StateTransitionOption... options) { Link link = getLink(org.familysearch.api.client.Rel.FATHER_ROLE); if (link == null || link.getHref() == null) { return null; } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(link.getHref().toURI(), HttpMethod.DELETE); return ((FamilyTreeStateFactory)this.stateFactory).newChildAndParentsRelationshipState(request, invoke(request, options), this.accessToken); }
public PersonState readFather(StateTransitionOption... options) { ChildAndParentsRelationship relationship = getRelationship(); if (relationship == null) { return null; } ResourceReference father = relationship.getFather(); if (father == null || father.getResource() == null) { return null; } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(father.getResource().toURI(), HttpMethod.GET); return ((FamilyTreeStateFactory)this.stateFactory).newPersonState(request, invoke(request, options), this.accessToken); }
public PersonState readChild(StateTransitionOption... options) { ChildAndParentsRelationship relationship = getRelationship(); if (relationship == null) { return null; } ResourceReference child = relationship.getChild(); if (child == null || child.getResource() == null) { return null; } ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).build(child.getResource().toURI(), HttpMethod.GET); return ((FamilyTreeStateFactory)this.stateFactory).newPersonState(request, invoke(request, options), this.accessToken); }
protected ChildAndParentsRelationshipState updateEvidenceReferences(ChildAndParentsRelationship relationship, StateTransitionOption... options) { URI target = getSelfUri(); Link conclusionsLink = getLink(Rel.EVIDENCE_REFERENCES); if (conclusionsLink != null && conclusionsLink.getHref() != null) { target = conclusionsLink.getHref().toURI(); } FamilySearchPlatform gx = new FamilySearchPlatform(); gx.setChildAndParentsRelationships(Arrays.asList(relationship)); ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).entity(gx).build(target, HttpMethod.POST); return ((FamilyTreeStateFactory)this.stateFactory).newChildAndParentsRelationshipState(request, invoke(request, options), this.accessToken); }
protected ChildAndParentsRelationshipState updateMediaReferences(ChildAndParentsRelationship relationship, StateTransitionOption... options) { URI target = getSelfUri(); Link conclusionsLink = getLink(Rel.MEDIA_REFERENCES); if (conclusionsLink != null && conclusionsLink.getHref() != null) { target = conclusionsLink.getHref().toURI(); } FamilySearchPlatform gx = new FamilySearchPlatform(); gx.setChildAndParentsRelationships(Arrays.asList(relationship)); ClientRequest request = RequestUtil.applyFamilySearchConneg(createAuthenticatedRequest()).entity(gx).build(target, HttpMethod.POST); return ((FamilyTreeStateFactory)this.stateFactory).newChildAndParentsRelationshipState(request, invoke(request, options), this.accessToken); }
public SourceDescriptionState readSourceDescription(SourceReference sourceReference, StateTransitionOption... options) { Link link = sourceReference.getLink(org.gedcomx.rs.Rel.DESCRIPTION); link = link == null ? sourceReference.getLink(org.gedcomx.rs.Rel.SELF) : link; if (link == null || link.getHref() == null) { throw new GedcomxApplicationException("Source description cannot be read: missing link."); } ClientRequest request = createAuthenticatedGedcomxRequest().build(link.getHref().toURI(), HttpMethod.GET); return ((FamilyTreeStateFactory)this.stateFactory).newSourceDescriptionState(request, invoke(request, options), this.accessToken); }
public Response request( String method, String uri ) { return new Response( CLIENT.handle( build().build( buildUri( uri ), method ) ) ); }
public Response request( String method, String uri, Object payload ) { if ( payload == null ) { return request( method, uri ); } String jsonPayload = payload instanceof RawPayload ? ((RawPayload) payload).get() : createJsonFrom( payload ); ClientRequest.Builder lastBuilder = build().entity( jsonPayload, MediaType.APPLICATION_JSON_TYPE ); return new Response( CLIENT.handle( lastBuilder.build( buildUri( uri ), method ) ) ); }
private static ClientRequest createClientRequest( URI uri ) { return ClientRequest.create() .header( "Accept", "application/json" ) .build( uri, "POST" ); }