feat(stat): add stats page
This commit is contained in:
25
src/main/java/fr/titionfire/ffsaf/rest/StatsEndpoints.java
Normal file
25
src/main/java/fr/titionfire/ffsaf/rest/StatsEndpoints.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package fr.titionfire.ffsaf.rest;
|
||||
|
||||
import fr.titionfire.ffsaf.domain.service.StatsService;
|
||||
import fr.titionfire.ffsaf.rest.data.LicenceStats;
|
||||
import io.smallrye.mutiny.Uni;
|
||||
import jakarta.annotation.security.RolesAllowed;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
|
||||
@Path("api/stats")
|
||||
public class StatsEndpoints {
|
||||
|
||||
@Inject
|
||||
StatsService service;
|
||||
|
||||
@GET
|
||||
@RolesAllowed("federation_admin")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Uni<LicenceStats> getStats() {
|
||||
return service.getStats();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package fr.titionfire.ffsaf.rest.data;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@Data
|
||||
@RegisterForReflection
|
||||
public class LicenceStats {
|
||||
private ConcurrentHashMap<Integer, YearStats> licences = new ConcurrentHashMap<>();
|
||||
private List<CategoriesStats> categories = new ArrayList<>();
|
||||
|
||||
@Data
|
||||
@RegisterForReflection
|
||||
public static class CategoriesStats {
|
||||
private String name;
|
||||
private int count = 0;
|
||||
}
|
||||
|
||||
@Data
|
||||
@RegisterForReflection
|
||||
public static class YearStats {
|
||||
private int h = 0;
|
||||
private int f = 0;
|
||||
private int na = 0;
|
||||
private int not_valid = 0;
|
||||
|
||||
public void addH() {
|
||||
this.h++;
|
||||
}
|
||||
|
||||
public void addF() {
|
||||
this.f++;
|
||||
}
|
||||
|
||||
public void addNa() {
|
||||
this.na++;
|
||||
}
|
||||
|
||||
public void addNotValid() {
|
||||
this.not_valid++;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user