diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java index 50fe6d8..af3415d 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java @@ -131,6 +131,10 @@ public class MembreService { .call(m -> Mutiny.fetch(m.getLicences())); } + public Uni getByAccountId(String subject) { + return repository.find("userId = ?1", subject).firstResult(); + } + public Uni getByLicence(long licence) { return repository.find("licence = ?1", licence).firstResult(); } diff --git a/src/main/java/fr/titionfire/ffsaf/rest/MembreEndpoints.java b/src/main/java/fr/titionfire/ffsaf/rest/MembreEndpoints.java index 138cf68..1227bd7 100644 --- a/src/main/java/fr/titionfire/ffsaf/rest/MembreEndpoints.java +++ b/src/main/java/fr/titionfire/ffsaf/rest/MembreEndpoints.java @@ -98,7 +98,7 @@ public class MembreEndpoints { @Authenticated @Produces(MediaType.APPLICATION_JSON) @Operation(summary = "Renvoie l'attestation d'adhesion du membre connecté", description = "Renvoie l'attestation d'adhesion du " + - "membre connecté, y compris le club et les licences") + "membre connecté") @APIResponses(value = { @APIResponse(responseCode = "200", description = "L'attestation d'adhesion"), @APIResponse(responseCode = "403", description = "Accès refusé"), @@ -109,6 +109,21 @@ public class MembreEndpoints { return membreService.getLicencePdf(securityCtx.getSubject()); } + @GET + @Path("me/photo") + @Authenticated + @Operation(summary = "Renvoie la photo du membre connecté", description = "Renvoie la photo du membre connecté") + @APIResponses(value = { + @APIResponse(responseCode = "200", description = "La photo"), + @APIResponse(responseCode = "403", description = "Accès refusé"), + @APIResponse(responseCode = "500", description = "Erreur interne du serveur") + }) + public Uni getMePhoto() { + return membreService.getByAccountId(securityCtx.getSubject()) + .chain(Unchecked.function( + m -> Utils.getMediaFile(m.getId(), media, "ppMembre", Uni.createFrom().nullItem()))); + } + @GET @Path("{id}/photo") @RolesAllowed({"federation_admin", "club_president", "club_secretaire", "club_respo_intra"}) diff --git a/src/main/webapp/src/pages/MePage.jsx b/src/main/webapp/src/pages/MePage.jsx index 3ae80a2..cdd105b 100644 --- a/src/main/webapp/src/pages/MePage.jsx +++ b/src/main/webapp/src/pages/MePage.jsx @@ -73,7 +73,7 @@ function PhotoCard({data}) {
avatar