Skip to content

Commit

Permalink
refactor(no generated implementation for controllers interface)
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabrice B committed May 21, 2024
1 parent e90bd12 commit 93cc2eb
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
5 changes: 5 additions & 0 deletions metadata-webimpl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<groupId>bibonne.exp.oas-cache</groupId>
<artifactId>metadata-webimpl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<properties>
<java.version>21</java.version>
Expand Down Expand Up @@ -54,13 +55,17 @@


<build>
<finalName>metadata</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<parameters>true</parameters>
<enablePreview>true</enablePreview>
<source>21</source>
<target>21</target>
<compilerArgs>--enable-preview</compilerArgs>
</configuration>
</plugin>
<plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
import bibonne.exp.oascache.metadata.internal.WebResponseBuilder;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;

import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

@RequiredArgsConstructor
@Controller
public class CommuneEndpoint implements GeoCommuneApi {
private final WebResponseBuilder webResponseBuilder;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package bibonne.exp.oascache.metadata.endpoints;

import bibonne.exp.oascache.metadata.api.GeoDepartementApi;
import bibonne.exp.oascache.metadata.api.model.Commune;
import bibonne.exp.oascache.metadata.api.model.Departement;
import bibonne.exp.oascache.metadata.api.model.TerritoireRef;
import bibonne.exp.oascache.metadata.api.model.TypeEnum;
import bibonne.exp.oascache.metadata.internal.WebResponseBuilder;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;

import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

@RequiredArgsConstructor
@Controller
public class DepartementEndpoint implements GeoDepartementApi {
private final WebResponseBuilder webResponseBuilder;

@Override
public ResponseEntity<Departement> getcogdep(String code, Optional<LocalDate> date) throws Exception {
return this.webResponseBuilder.forFindByCodeQuery(Departement.class, code, date).asOneObjet();
}

@Override
public ResponseEntity<List<TerritoireRef>> getcogdepdesc(String code, Optional<LocalDate> date, Optional<String> filtreNom, Optional<TypeEnum> type) throws Exception {
return this.webResponseBuilder.forFindDescQuery(Departement.class, code, date, TerritoireRef.class).asList();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package bibonne.exp.oascache.metadata.internal;

import bibonne.exp.oascache.metadata.api.model.Departement;
import bibonne.exp.oascache.metadata.internal.queries.FindAllQuery;
import bibonne.exp.oascache.metadata.internal.queries.FindByCodeQuery;
import bibonne.exp.oascache.metadata.internal.queries.FindDescQuery;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;

Expand All @@ -19,6 +21,10 @@ public <G> WebResponse<G> forFindAllQuery(Class<G> targetClass, Optional<LocalDa
return new WebResponse<>(this.queryExecutor.execute(FindAllQuery.INSTANCE.interpolate(targetClass.getSimpleName(), date)), targetClass, unmarshaller);
}

public <T, G> WebResponse<G> forFindDescQuery(Class<T> sourceTerritory, String code, Optional<LocalDate> date, Class<G> targetClass) {
return new WebResponse<>(this.queryExecutor.execute(new FindDescQuery(sourceTerritory.getSimpleName()).interpolate(code, date)), targetClass, unmarshaller);
}

public record WebResponse<G>(String queryResult, Class<G> targetClass, Unmarshaller unmarshaller) {
public ResponseEntity<G> asOneObjet() {
var entityToReturn=unmarshaller.unmarshal(queryResult, targetClass);
Expand Down

0 comments on commit 93cc2eb

Please sign in to comment.