Browse Source

incidents are now fetched from a remote rest api

main
Nicolas Massé 3 years ago
parent
commit
3195881b2a
  1. 1
      .gitignore
  2. 8
      pom.xml
  3. 8
      src/main/java/org/sebi/incident/Incident.java
  4. 12
      src/main/java/org/sebi/incident/IncidentResource.java
  5. 18
      src/main/java/org/sebi/incident/IncidentService.java
  6. 29
      src/main/java/org/sebi/incident/IncidentStartup.java
  7. 7
      src/main/resources/application.properties

1
.gitignore

@ -0,0 +1 @@
target

8
pom.xml

@ -46,19 +46,19 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-h2</artifactId> <artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId> <artifactId>quarkus-smallrye-openapi</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm-panache</artifactId> <artifactId>quarkus-rest-client-jackson</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-openapi</artifactId> <artifactId>quarkus-rest-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>

8
src/main/java/org/sebi/incident/Incident.java

@ -2,13 +2,9 @@ package org.sebi.incident;
import java.util.Date; import java.util.Date;
import javax.persistence.Entity; public class Incident {
import io.quarkus.hibernate.orm.panache.PanacheEntity;
@Entity
public class Incident extends PanacheEntity {
public int id;
public String description; public String description;
public Date date; public Date date;
public boolean status; public boolean status;

12
src/main/java/org/sebi/incident/IncidentResource.java

@ -4,12 +4,22 @@ import java.util.List;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.inject.Inject;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@Path("rest/incidents") @Path("rest/incidents")
public class IncidentResource { public class IncidentResource {
@Inject
@RestClient
IncidentService incidentService;
@ConfigProperty(name = "apikey")
String apiKey;
@GET @GET
public List<Incident> getIncidents(){ public List<Incident> getIncidents(){
return Incident.listAll(); return incidentService.getIncidents(apiKey);
} }
} }

18
src/main/java/org/sebi/incident/IncidentService.java

@ -0,0 +1,18 @@
package org.sebi.incident;
import org.eclipse.microprofile.rest.client.annotation.RegisterProvider;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import org.jboss.resteasy.annotations.jaxrs.QueryParam;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import java.util.List;
@Path("/rest/incidents")
@RegisterRestClient(configKey = "incident-service")
public interface IncidentService {
@GET
List<Incident> getIncidents(@QueryParam("api_key") String apikey);
}

29
src/main/java/org/sebi/incident/IncidentStartup.java

@ -1,29 +0,0 @@
package org.sebi.incident;
import java.util.Date;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.transaction.Transactional;
import io.quarkus.runtime.StartupEvent;
@ApplicationScoped
public class IncidentStartup {
@Transactional
void onStart(@Observes StartupEvent ev) {
Incident incident = new Incident();
incident.date = new Date();
incident.description = "coupure fibre";
incident.status = false;
incident.persist();
Incident incident1 = new Incident();
incident1.date = new Date();
incident1.description = "Panne émetteur";
incident1.status = true;
incident1.persist();
}
}

7
src/main/resources/application.properties

@ -1,4 +1,3 @@
quarkus.datasource.jdbc.url=jdbc:h2:mem:myDB %dev.quarkus.rest-client.incident-service.url=http://localhost:8081
quarkus.datasource.jdbc.min-size=3 quarkus.rest-client.incident-service.scope=javax.inject.Singleton
quarkus.datasource.jdbc.max-size=13 %dev.apikey=mysecret
quarkus.hibernate-orm.database.generation=update

Loading…
Cancel
Save