Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.sswugdsc4a.withparents.controller;

import com.sswugdsc4a.withparents.dto.Request.schedule.CreateScheduleRequest;
import com.sswugdsc4a.withparents.dto.dto.schedule.ScheduleDTO;
import com.sswugdsc4a.withparents.service.ScheduleService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
public class ScheduleController {
private final ScheduleService scheduleService;

@PostMapping("/api/schedule/createSchedule")
public ScheduleDTO createSchedule(
@RequestBody CreateScheduleRequest body
) {
return scheduleService.createSchedule(
body.getUserId(),
body.getTitle(),
body.getDate(),
body.getTime()
);
}

@GetMapping("/api/schedule/getScheduleList")
public List<ScheduleDTO> getScheduleList(
@RequestParam Long userId
) {
return scheduleService.getScheduleList(userId);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

userId는 userService의 getUser 메서드 이용하시면 얻을 수 있어서 굳이 안받아도 되고
getScheduleList에서는 년과 월을 입력받아서 해당하는 달의 스케줄 리스트를 반환해야 합니다

};
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.sswugdsc4a.withparents.dto.Request.schedule;

import lombok.Getter;

import java.time.LocalDate;
import java.time.LocalTime;

@Getter
public class CreateScheduleRequest {
private Long userId;
private String title;
private LocalDate date;
private LocalTime time;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.sswugdsc4a.withparents.dto.dto.schedule;

import com.sswugdsc4a.withparents.entity.Schedule;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.time.LocalTime;

@Getter
@Setter
@AllArgsConstructor

public class ScheduleDTO {
private Long id;
private Long userId;
private String title;
private LocalDate Date;
private LocalTime Time;

public static ScheduleDTO entityToDTO(Schedule e){
return new ScheduleDTO(
e.getId(),
e.getUser().getId(),
e.getTitle(),
e.getDate(),
e.getTime()
);
}
}



35 changes: 35 additions & 0 deletions src/main/java/com/sswugdsc4a/withparents/entity/Schedule.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.sswugdsc4a.withparents.entity;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;

import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Schedule{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "schedule_id")
private Long id;

@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@CreatedDate
@Column(updatable = false)
private LocalDateTime createDate;
private String title;
private LocalDate date;
private LocalTime time;
};

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.sswugdsc4a.withparents.repository;

import com.sswugdsc4a.withparents.entity.Medication;
import com.sswugdsc4a.withparents.entity.Schedule;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface ScheduleRepository extends JpaRepository<Schedule, Long> {
List<Schedule> findAllByUserId(Long userId);
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package com.sswugdsc4a.withparents.service;

import com.sswugdsc4a.withparents.dto.dto.schedule.ScheduleDTO;
import com.sswugdsc4a.withparents.entity.Schedule;
import com.sswugdsc4a.withparents.entity.User;
import com.sswugdsc4a.withparents.exception.CustomException;
import com.sswugdsc4a.withparents.repository.ScheduleRepository;
import com.sswugdsc4a.withparents.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
public class ScheduleService {
private final ScheduleRepository scheduleRepository;
private final UserRepository UserRepository;
private final UserService userService;

@Transactional
public ScheduleDTO createSchedule(
Long userId,
String title,
LocalDate date,
LocalTime time
) {
if (!userService.areTheyAFamily(userId)) {
throw new CustomException("Family id is different");
}

return ScheduleDTO.entityToDTO(
scheduleRepository.save(
new Schedule(
null,
userService.getUserById(userId),
null,
title,
date,
time
)

)
);

}

public List<ScheduleDTO> getScheduleList(Long userId){
User user = userService.getUserById(userId);
if(!userService.areTheyAFamily(userId)) {
throw new CustomException("Family id is different");
}
return scheduleRepository.findAllByUserId(userId)
.stream()
.map(e -> ScheduleDTO.entityToDTO(e))
.collect(Collectors.toList());
}

// public List<ScheduleDTO> getTodayScheduleList(Long userId){
// User user = UserRepository.findById(userId)
// .orElseThrow(()->new IllegalArgumentException());
// }
// public List<ScheduleDTO> getTodayScheduleList(Long userId){
// User user = userService.getUserById(userId);
//
// if(!userService.areTheyAFamily(userId)){
// throw new CustomException("Family id is different");
// }
// int dayOfWeekNumber = switch (Calendar.getInstance().get(Calendar.D)){
// case 1 -> 6;
// case 2 -> 0;
// case 3 -> 1;
// case 4 -> 2;
// case 5 -> 3;
// case 6 -> 4;
// case 7 -> 5;
// default -> 8;
// };
// return scheduleRepository.findAllByUserId(userId)
// .stream()
// .filter(e -> {
// return e.get
// })
}