Created
August 20, 2021 13:23
-
-
Save JuliaKrivonos/1d3b3ddf1bcc5d75f79eb9aa22a0e019 to your computer and use it in GitHub Desktop.
add const PLANNED STATUS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package org.jazzteam.fitnesclub.service.impl; | |
| import org.jazzteam.fitnesclub.dto.workouts.IndividualWorkoutDto; | |
| import org.jazzteam.fitnesclub.dto.workouts.ScheduleWorkoutDto; | |
| import org.jazzteam.fitnesclub.model.schedule.DaySchedule; | |
| import org.jazzteam.fitnesclub.model.workouts.IndividualWorkout; | |
| import org.jazzteam.fitnesclub.model.workouts.ScheduleWorkout; | |
| import org.jazzteam.fitnesclub.repository.ClientRepository; | |
| import org.jazzteam.fitnesclub.repository.ClientWorkoutRepository; | |
| import org.jazzteam.fitnesclub.repository.RoomRepository; | |
| import org.jazzteam.fitnesclub.repository.TrainerRepository; | |
| import org.jazzteam.fitnesclub.repository.addictional.WorkoutStatusRepository; | |
| import org.jazzteam.fitnesclub.repository.addictional.impl.WorkoutStatusRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.impl.ClientRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.impl.ClientWorkoutRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.impl.RoomRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.impl.TrainerRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.schedule.DayScheduleRepository; | |
| import org.jazzteam.fitnesclub.repository.schedule.impl.DayScheduleRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.workouts.IndividualWorkoutRepository; | |
| import org.jazzteam.fitnesclub.repository.workouts.ScheduleWorkoutRepository; | |
| import org.jazzteam.fitnesclub.repository.workouts.impl.IndividualWorkoutRepositoryImpl; | |
| import org.jazzteam.fitnesclub.repository.workouts.impl.ScheduleWorkoutRepositoryImpl; | |
| import org.jazzteam.fitnesclub.service.WorkoutService; | |
| import java.util.List; | |
| import java.util.function.Predicate; | |
| public class WorkoutServiceImpl implements WorkoutService { | |
| private final ScheduleWorkoutRepository scheduleWorkoutRepository = new ScheduleWorkoutRepositoryImpl(); | |
| private final DayScheduleRepository dayScheduleRepository = new DayScheduleRepositoryImpl(); | |
| private final ClientRepository clientRepository = new ClientRepositoryImpl(); | |
| private final WorkoutStatusRepository workoutStatusRepository = new WorkoutStatusRepositoryImpl(); | |
| private final RoomRepository roomRepository = new RoomRepositoryImpl(); | |
| private final TrainerRepository trainerRepository = new TrainerRepositoryImpl(); | |
| private final IndividualWorkoutRepository individualWorkoutRepository = new IndividualWorkoutRepositoryImpl(); | |
| private final ClientWorkoutRepository clientWorkoutRepository = new ClientWorkoutRepositoryImpl(); | |
| // TODO: 20.08.2021 research question how to expand table if its use ENUM type | |
| private static final String PLANNED_STATUS = "OPEN"; | |
| @Override | |
| public ScheduleWorkout createScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto) { | |
| ScheduleWorkout scheduleWorkout = new ScheduleWorkout(); | |
| scheduleWorkout.setDateOfVisit(scheduleWorkoutDto.getDateOfVisit()); | |
| DaySchedule dayById = dayScheduleRepository.findById(scheduleWorkoutDto.getDaySchedule().getId()); | |
| scheduleWorkout.setDaySchedule(dayById); | |
| scheduleWorkout.setStatus(workoutStatusRepository.findByStatus(PLANNED_STATUS)); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public ScheduleWorkout addClientOnScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto, Long clientId) { | |
| ScheduleWorkout scheduleWorkout = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkout.getClients().add(clientRepository.findById(clientId)); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public ScheduleWorkout removeClientFromScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto, Long clientId) { | |
| ScheduleWorkout scheduleWorkout = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkout.getClients().remove(clientRepository.findById(clientId)); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public ScheduleWorkout updateStatusScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto) { | |
| ScheduleWorkout scheduleWorkout = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkout.setStatus(workoutStatusRepository.findById(scheduleWorkoutDto.getId())); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public ScheduleWorkout updateDateOfVisitScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto) { | |
| ScheduleWorkout scheduleWorkout = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkout.setDateOfVisit(scheduleWorkoutDto.getDateOfVisit()); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public ScheduleWorkout updateDayScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto) { | |
| ScheduleWorkout scheduleWorkout = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkout.setDaySchedule(dayScheduleRepository.findById(scheduleWorkoutDto.getId())); | |
| return scheduleWorkoutRepository.save(scheduleWorkout); | |
| } | |
| @Override | |
| public void deleteScheduleWorkout(ScheduleWorkoutDto scheduleWorkoutDto) { | |
| ScheduleWorkout scheduleWorkoutToDelete = scheduleWorkoutRepository.findById(scheduleWorkoutDto.getId()); | |
| scheduleWorkoutRepository.delete(scheduleWorkoutToDelete); | |
| } | |
| @Override | |
| public IndividualWorkout createIndividualWorkout(IndividualWorkoutDto individualWorkoutDto, Long clientId) { | |
| IndividualWorkout individualWorkout = new IndividualWorkout(); | |
| individualWorkout.setClient(clientRepository.findById(clientId)); | |
| individualWorkout.setStatus(workoutStatusRepository.findById(1L)); | |
| individualWorkout.setDateOfVisit(individualWorkoutDto.getDateOfVisit()); | |
| individualWorkout.setRoom(roomRepository.findById(individualWorkoutDto.getRoom().getId())); | |
| individualWorkout.setTrainer(trainerRepository.findById(individualWorkoutDto.getTrainer().getId())); | |
| return individualWorkoutRepository.save(individualWorkout); | |
| } | |
| @Override | |
| public IndividualWorkout updateIndividualWorkout(IndividualWorkoutDto individualWorkoutDto, Long clientId) { | |
| IndividualWorkout individualWorkout = individualWorkoutRepository.findById(individualWorkoutDto.getId()); | |
| individualWorkout.setClient(clientRepository.findById(clientId)); | |
| individualWorkout.setStatus(workoutStatusRepository.findById(individualWorkoutDto.getId())); | |
| individualWorkout.setDateOfVisit(individualWorkoutDto.getDateOfVisit()); | |
| individualWorkout.setRoom(roomRepository.findById(individualWorkoutDto.getRoom().getId())); | |
| individualWorkout.setTrainer(trainerRepository.findById(individualWorkoutDto.getTrainer().getId())); | |
| return individualWorkoutRepository.save(individualWorkout); | |
| } | |
| @Override | |
| public IndividualWorkout updateTimeOfVisitIndividualWorkout(IndividualWorkoutDto individualWorkoutDto) { | |
| IndividualWorkout individualWorkout = individualWorkoutRepository.findById(individualWorkoutDto.getId()); | |
| individualWorkout.setTimeVisit(individualWorkoutDto.getTimeVisit()); | |
| return individualWorkoutRepository.save(individualWorkout); | |
| } | |
| @Override | |
| public void deleteIndividualWorkout(IndividualWorkoutDto individualWorkoutDto) { | |
| IndividualWorkout individualWorkoutToDelete = individualWorkoutRepository.findById(individualWorkoutDto.getId()); | |
| individualWorkoutRepository.delete(individualWorkoutToDelete); | |
| } | |
| @Override | |
| public List<ScheduleWorkout> findAllScheduleWorkoutByClient(Long clientId) { | |
| return clientWorkoutRepository.findScheduleWorkoutByClient(clientId); | |
| } | |
| @Override | |
| public List<IndividualWorkout> findAllIndividualWorkoutByClient(Long clientId) { | |
| return clientWorkoutRepository.findIndividualWorkoutByClient(clientId); | |
| } | |
| @Override | |
| public List<ScheduleWorkout> findAllScheduleWorkout(Predicate<ScheduleWorkout> scheduleWorkoutPredicate) { | |
| return scheduleWorkoutRepository.findAll(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment