Skip to content

Instantly share code, notes, and snippets.

@JuliaKrivonos
Created August 20, 2021 13:23
Show Gist options
  • Select an option

  • Save JuliaKrivonos/1d3b3ddf1bcc5d75f79eb9aa22a0e019 to your computer and use it in GitHub Desktop.

Select an option

Save JuliaKrivonos/1d3b3ddf1bcc5d75f79eb9aa22a0e019 to your computer and use it in GitHub Desktop.
add const PLANNED STATUS
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