TrainingPathController.java

package fr.avenirsesr.portfolio.program.application.adapter.controller;

import fr.avenirsesr.portfolio.program.application.adapter.dto.TrainingPathDTO;
import fr.avenirsesr.portfolio.program.application.adapter.mapper.TrainingPathMapper;
import fr.avenirsesr.portfolio.program.domain.port.input.TrainingPathService;
import fr.avenirsesr.portfolio.shared.application.adapter.utils.UserUtil;
import fr.avenirsesr.portfolio.user.domain.model.Student;
import java.security.Principal;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
@AllArgsConstructor
@RequestMapping("/me/training-paths")
public class TrainingPathController {
  private final TrainingPathService trainingPathService;
  private final UserUtil userUtil;

  @GetMapping()
  public List<TrainingPathDTO> getAllTrainingPaths(Principal principal) {
    Student student = userUtil.getStudent(principal);
    return trainingPathService.getTrainingPathsByStudent(student).stream()
        .map(TrainingPathMapper::fromDomainToDto)
        .toList();
  }
}