Skip to content

Commit 29f64f1

Browse files
authored
Standing PR for 1.0.0 rc.2 (#16)
* 1048 - required fields must not be blank * initial queryables implementation * initial switch to rc.2
1 parent 1b48114 commit 29f64f1

41 files changed

Lines changed: 501 additions & 54 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.planet.staccato</groupId>
77
<artifactId>staccato</artifactId>
8-
<version>1.0.0-rc1</version>
8+
<version>1.0.0-rc.2</version>
99
<packaging>pom</packaging>
1010

1111
<parent>

staccato-application/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<parent>
1313
<groupId>com.planet.staccato</groupId>
1414
<artifactId>staccato</artifactId>
15-
<version>1.0.0-rc1</version>
15+
<version>1.0.0-rc.2</version>
1616
</parent>
1717

1818
<properties>

staccato-application/src/main/java/com/planet/staccato/catalog/RootCatalog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class RootCatalog extends Catalog {
1111
protected Object conformsTo;
1212

1313
public Catalog conformsTo(Object conformsTo) {
14-
this.conformsTo = conformsTo;
14+
setConformsTo(conformsTo);
1515
return this;
1616
}
1717
}

staccato-application/src/main/java/com/planet/staccato/catalog/RootCatalogConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.springframework.web.reactive.function.server.RouterFunction;
1616
import org.springframework.web.reactive.function.server.ServerResponse;
1717

18+
import static com.planet.staccato.config.StaccatoRelType.QUERYABLES_LINK_REL;
1819
import static org.springframework.web.reactive.function.BodyInserters.fromValue;
1920
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
2021
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
@@ -46,6 +47,7 @@ public class RootCatalogConfig {
4647
public static final String CONFORMANCE_LINK_HREF = "/conformance";
4748
public static final String DATA_LINK_REL = "data";
4849
public static final String DATA_LINK_HREF = "/collections";
50+
public static final String QUERYABLES_LINK_HREF = "/queryables";
4951

5052
/**
5153
* Creates the root catalog object.
@@ -88,6 +90,11 @@ public Catalog rootCatalog() {
8890
.type(MediaType.APPLICATION_JSON_VALUE)
8991
.href(LinksConfigProps.LINK_PREFIX + DATA_LINK_HREF));
9092

93+
catalog.getLinks().add(Link.build()
94+
.rel(QUERYABLES_LINK_REL)
95+
.type(StaccatoMediaType.APPLICATION_SCHEMA_JSON_VALUE)
96+
.href(LinksConfigProps.LINK_PREFIX + QUERYABLES_LINK_HREF));
97+
9198
return catalog;
9299
}
93100

staccato-application/src/main/java/com/planet/staccato/collection/CollectionApi.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.planet.staccato.model.Collections;
66
import com.planet.staccato.model.Item;
77
import com.planet.staccato.model.ItemCollection;
8+
import com.planet.staccato.queryables.Queryables;
89
import org.springframework.http.MediaType;
910
import org.springframework.web.bind.annotation.GetMapping;
1011
import org.springframework.web.bind.annotation.PathVariable;
@@ -26,6 +27,10 @@ public interface CollectionApi {
2627
@GetMapping(value = "/collections/{collectionId}", produces = MediaType.APPLICATION_JSON_VALUE)
2728
Mono<CollectionMetadata> getCollection(@PathVariable("collectionId") String collectionId);
2829

30+
@GetMapping(value = "/collections/{collectionId}/queryables",
31+
produces = {StaccatoMediaType.APPLICATION_GEO_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE})
32+
Mono<Queryables> getQueryables(@PathVariable("collectionId") String collectionId);
33+
2934
@GetMapping(value = "/collections/{collectionId}/items",
3035
produces = {StaccatoMediaType.APPLICATION_GEO_JSON_VALUE, MediaType.APPLICATION_JSON_VALUE})
3136
Mono<ItemCollection> getCollectionItems(@PathVariable("collectionId") String collectionId,

staccato-application/src/main/java/com/planet/staccato/collection/CollectionController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.planet.staccato.model.Collections;
55
import com.planet.staccato.model.Item;
66
import com.planet.staccato.model.ItemCollection;
7+
import com.planet.staccato.queryables.Queryables;
78
import com.planet.staccato.service.ApiService;
89
import com.planet.staccato.service.CollectionService;
910
import lombok.RequiredArgsConstructor;
@@ -37,6 +38,11 @@ public Mono<CollectionMetadata> getCollection(@PathVariable("collectionId") Stri
3738
return collectionService.getCollectionMetadata(collectionId);
3839
}
3940

41+
@Override
42+
public Mono<Queryables> getQueryables(String collectionId) {
43+
return collectionService.getQueryables(collectionId);
44+
}
45+
4046
@Override
4147
public Mono<ItemCollection> getCollectionItems(@PathVariable("collectionId") String collectionId,
4248
@RequestParam(value = "filter-lang", required = false) String filterLang,

staccato-application/src/main/java/com/planet/staccato/oaf/DefaultOafService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
55
import com.planet.staccato.model.Conformance;
6+
import com.planet.staccato.queryables.Queryables;
67
import lombok.extern.slf4j.Slf4j;
78
import org.springframework.core.io.Resource;
89
import org.springframework.core.io.UrlResource;
910
import org.springframework.stereotype.Service;
11+
import reactor.core.publisher.Flux;
1012
import reactor.core.publisher.Mono;
1113

1214
import javax.annotation.PostConstruct;
@@ -23,9 +25,14 @@
2325
@Service
2426
public class DefaultOafService {
2527

28+
private final List<Queryables> queryables;
2629
private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
2730
private final Conformance conformance = new Conformance();
2831

32+
public DefaultOafService(List<Queryables> queryables) {
33+
this.queryables = queryables;
34+
}
35+
2936
@PostConstruct
3037
public void init() {
3138
initConformance();
@@ -58,4 +65,9 @@ public Mono<Conformance> getConformanceMono() {
5865
return Mono.just(conformance);
5966
}
6067

68+
public Flux<Queryables> getQueryables() {
69+
return Flux.fromIterable(queryables);
70+
}
71+
72+
6173
}

staccato-application/src/main/java/com/planet/staccato/oaf/OafApi.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import com.planet.staccato.config.StaccatoMediaType;
44
import com.planet.staccato.model.Conformance;
5+
import com.planet.staccato.queryables.Queryables;
56
import org.springframework.http.MediaType;
67
import org.springframework.web.bind.annotation.GetMapping;
8+
import reactor.core.publisher.Flux;
79
import reactor.core.publisher.Mono;
810

911
/**
@@ -19,4 +21,7 @@ public interface OafApi {
1921
@GetMapping(path = "/conformance", produces = MediaType.APPLICATION_JSON_VALUE)
2022
Mono<Conformance> getConformance();
2123

24+
@GetMapping(path = "/queryables", produces = StaccatoMediaType.APPLICATION_SCHEMA_JSON_VALUE)
25+
Flux<Queryables> getQueryables();
26+
2227
}

staccato-application/src/main/java/com/planet/staccato/oaf/OafController.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.planet.staccato.oaf;
22

33
import com.planet.staccato.model.Conformance;
4+
import com.planet.staccato.queryables.Queryables;
45
import lombok.RequiredArgsConstructor;
56
import org.springframework.web.bind.annotation.RestController;
7+
import reactor.core.publisher.Flux;
68
import reactor.core.publisher.Mono;
79

810
/**
@@ -24,4 +26,10 @@ public Mono<Object> getApi() {
2426
public Mono<Conformance> getConformance() {
2527
return service.getConformanceMono();
2628
}
29+
30+
@Override
31+
public Flux<Queryables> getQueryables() {
32+
return service.getQueryables();
33+
}
34+
2735
}

staccato-application/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ logging:
4848
#org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping: WARN
4949

5050
staccato:
51-
version: 1.0.0-rc1
51+
version: 1.0.0-rc.2
5252
rsocket:
5353
enabled: false
5454
kafka:

0 commit comments

Comments
 (0)