use of com.baremaps.model.Link in project baremaps by baremaps.
the class StylesResource method getStyleSet.
@Override
public Response getStyleSet() {
List<UUID> ids = jdbi.withHandle(handle -> handle.createQuery("select id from styles").mapTo(UUID.class).list());
StyleSet styleSet = new StyleSet();
List<StyleSetEntry> entries = new ArrayList<>();
String address = uriInfo.getRequestUri().toString();
for (UUID id : ids) {
Link link = new Link();
link.setHref(address + id);
link.setType("application/vnd.mapbox.style+json");
link.setRel("stylesheet");
StyleSetEntry entry = new StyleSetEntry();
entry.setId(id);
entry.setLinks(List.of(link));
entries.add(entry);
}
styleSet.setStyles(entries);
return Response.ok(styleSet).build();
}
use of com.baremaps.model.Link in project baremaps by baremaps.
the class CollectionsResourceIntegrationTest method test.
@Test
public void test() {
// Create a new collection
Collection collection = new Collection().title("test").links(List.of(new Link().href("/link").rel("self")));
// List the collections
Collections collections = target().path("/collections").request().get(Collections.class);
assertEquals(0, collections.getCollections().size());
// Insert the collection
Response response = target().path("/collections").request(MediaType.APPLICATION_JSON).post(Entity.entity(collection, MediaType.valueOf("application/json")));
assertEquals(201, response.getStatus());
// List the collections
collections = target().path("/collections").request().get(Collections.class);
assertEquals(1, collections.getCollections().size());
// Get the collection
String id = response.getHeaderString("Location").split("/")[4];
collection = target().path("/collections/" + id).request().get(Collection.class);
assertEquals("test", collection.getTitle());
// Update the collection
collection.setTitle("test_update");
response = target().path("/collections/" + id).request().put(Entity.entity(collection, MediaType.valueOf("application/json")));
assertEquals(204, response.getStatus());
// Delete the collection
response = target().path("/collections/" + id).request().delete();
assertEquals(204, response.getStatus());
// List the collections
collections = target().path("/collections").request().get(Collections.class);
assertEquals(0, collections.getCollections().size());
}
use of com.baremaps.model.Link in project baremaps by baremaps.
the class CollectionsResource method getCollection.
@Override
public Response getCollection(UUID collectionId) {
Collection collection = jdbi.withHandle(handle -> handle.createQuery("select collection from collections where id = :id").bind("id", collectionId).mapTo(COLLECTION).one());
collection.getLinks().add(new Link().href(uriInfo.getRequestUri().toString()).rel("self"));
return Response.ok(collection).build();
}
use of com.baremaps.model.Link in project baremaps by baremaps.
the class CollectionsResource method getCollections.
@Override
public Response getCollections() {
List<Collection> collectionList = jdbi.withHandle(handle -> handle.createQuery("select collection from collections").mapTo(COLLECTION).list());
collectionList.forEach(collection -> collection.getLinks().add(new Link().href(uriInfo.getRequestUri().toString() + "/" + collection.getId()).rel("self")));
Collections collections = new Collections().collections(collectionList);
collections.getLinks().add(new Link().href(uriInfo.getRequestUri().toString()).rel("self"));
return Response.ok(collections).build();
}
use of com.baremaps.model.Link in project baremaps by baremaps.
the class RootResource method getLandingPage.
@Override
public Response getLandingPage() {
String address = uriInfo.getBaseUri().toString();
LandingPage landingPage = new LandingPage().title("Baremaps").description("Baremaps OGC API Landing Page").links(Arrays.asList(new Link().title("This document (landing page)").href(address).type("application/json").rel("self"), new Link().title("Conformance declaration").href(address + "conformance").type("application/json").rel("conformance"), new Link().title("API description").href(address + "api").type("application/json").rel("service-desc"), new Link().title("API description").href(address + "api").type("application/yaml").rel("service-desc"), new Link().title("API documentation").href(address + "swagger").type("text/html").rel("service-doc")));
return Response.ok().entity(landingPage).build();
}
Aggregations