ProfileUtilisateurController.java

package com.sintia.ffl.admin.optique.api.controllers;

import com.sintia.ffl.admin.optique.services.services.ProfileUtilisateurService;
import com.sintia.ffl.adminui.commons.dto.ProfilUtilisateurDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Optional;

@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/affectation-profil")
public class ProfileUtilisateurController {
	
	private final ProfileUtilisateurService profileUtilisateurService;
	
	
	@GetMapping(value = "/get-profil/{utilisateur}")
	@Operation(operationId = "getProfil", summary = "Récupérer le profil de l'utilisateur", description = "Récupérer le profil de l'utilisateur", responses = {
			@ApiResponse(responseCode = "200", description = "Traitement terminé normalement"),
			@ApiResponse(responseCode = "204", description = "Données non-trouvées") })
	public ResponseEntity<ProfilUtilisateurDTO> getProfil(@PathVariable String utilisateur)
			throws NoSuchFieldException {
		log.info("getProfil : {}", utilisateur);
		if (null != utilisateur) {
			Optional<ProfilUtilisateurDTO> profil = profileUtilisateurService.getProfilUtilisateur(utilisateur);
			return profil.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.noContent().build());
		}
		return ResponseEntity.noContent().build();
	}
	
}