33import com .fasterxml .jackson .core .JsonProcessingException ;
44import com .fasterxml .jackson .databind .JsonNode ;
55import com .fasterxml .jackson .databind .ObjectMapper ;
6- import com .grepp .spring .app .controller .api .mypage .payload .response .GoogleTokenResponse ;
7- import com .grepp .spring .app .controller .api .schedule .payload .request .AddWorkspaceRequest ;
8- import com .grepp .spring .app .controller .api .schedule .payload .request .CreateDepartLocationRequest ;
9- import com .grepp .spring .app .controller .api .schedule .payload .request .CreateSchedulesRequest ;
10- import com .grepp .spring .app .controller .api .schedule .payload .request .ModifySchedulesRequest ;
11- import com .grepp .spring .app .controller .api .schedule .payload .request .WriteSuggestedLocationRequest ;
6+ import com .grepp .spring .app .controller .api .schedule .payload .request .*;
127import com .grepp .spring .app .controller .api .schedule .payload .response .CreateOnlineMeetingRoomResponse ;
138import com .grepp .spring .app .controller .api .schedule .payload .response .CreateSchedulesResponse ;
149import com .grepp .spring .app .model .event .entity .Event ;
1712import com .grepp .spring .app .model .schedule .code .MeetingPlatform ;
1813import com .grepp .spring .app .model .schedule .code .ScheduleRole ;
1914import com .grepp .spring .app .model .schedule .code .VoteStatus ;
20- import com .grepp .spring .app .model .schedule .dto .AddWorkspaceDto ;
21- import com .grepp .spring .app .model .schedule .dto .CreateDepartLocationDto ;
22- import com .grepp .spring .app .model .schedule .dto .CreateOnlineMeetingRoomDto ;
23- import com .grepp .spring .app .model .schedule .dto .CreateScheduleDto ;
24- import com .grepp .spring .app .model .schedule .dto .DepartLocationMetroTransferDto ;
25- import com .grepp .spring .app .model .schedule .dto .ModifyScheduleDto ;
26- import com .grepp .spring .app .model .schedule .dto .ModifyWorkspaceDto ;
27- import com .grepp .spring .app .model .schedule .dto .CreateScheduleMembersDto ;
28- import com .grepp .spring .app .model .schedule .dto .SubwayStationDto ;
29- import com .grepp .spring .app .model .schedule .dto .VoteMiddleLocationDto ;
30- import com .grepp .spring .app .model .schedule .dto .WriteSuggestedLocationDto ;
31- import com .grepp .spring .app .model .schedule .dto .WriteSuggestedMetroTransferDto ;
32- import com .grepp .spring .app .model .schedule .dto .ZoomMeetingDto ;
33- import com .grepp .spring .app .model .schedule .entity .Line ;
34- import com .grepp .spring .app .model .schedule .entity .Location ;
35- import com .grepp .spring .app .model .schedule .entity .Metro ;
36- import com .grepp .spring .app .model .schedule .entity .MetroTransfer ;
37- import com .grepp .spring .app .model .schedule .entity .Schedule ;
38- import com .grepp .spring .app .model .schedule .entity .ScheduleMember ;
39- import com .grepp .spring .app .model .schedule .entity .Vote ;
40- import com .grepp .spring .app .model .schedule .entity .Workspace ;
41- import com .grepp .spring .app .model .schedule .repository .LineQueryRepository ;
42- import com .grepp .spring .app .model .schedule .repository .LocationCommandRepository ;
43- import com .grepp .spring .app .model .schedule .repository .LocationQueryRepository ;
44- import com .grepp .spring .app .model .schedule .repository .MetroQueryRepository ;
45- import com .grepp .spring .app .model .schedule .repository .MetroTransferCommandRepository ;
46- import com .grepp .spring .app .model .schedule .repository .ScheduleCommandRepository ;
47- import com .grepp .spring .app .model .schedule .repository .ScheduleMemberQueryRepository ;
48- import com .grepp .spring .app .model .schedule .repository .ScheduleMemberRepository ;
49- import com .grepp .spring .app .model .schedule .repository .ScheduleQueryRepository ;
50- import com .grepp .spring .app .model .schedule .repository .VoteCommandRepository ;
51- import com .grepp .spring .app .model .schedule .repository .VoteQueryRepository ;
52- import com .grepp .spring .app .model .schedule .repository .WorkspaceCommandRepository ;
53- import com .grepp .spring .app .model .schedule .repository .WorkspaceQueryRepository ;
54- import com .grepp .spring .infra .error .exceptions .schedule .EventNotActivatedException ;
55- import com .grepp .spring .infra .error .exceptions .schedule .VoteAlreadyProgressException ;
56- import com .grepp .spring .infra .utils .RandomPicker ;
15+ import com .grepp .spring .app .model .schedule .dto .*;
16+ import com .grepp .spring .app .model .schedule .entity .*;
17+ import com .grepp .spring .app .model .schedule .repository .*;
5718import com .grepp .spring .infra .error .exceptions .NotFoundException ;
5819import com .grepp .spring .infra .error .exceptions .group .UserNotFoundException ;
20+ import com .grepp .spring .infra .error .exceptions .schedule .EventNotActivatedException ;
5921import com .grepp .spring .infra .error .exceptions .schedule .LocationNotFoundException ;
22+ import com .grepp .spring .infra .error .exceptions .schedule .VoteAlreadyProgressException ;
6023import com .grepp .spring .infra .response .GroupErrorCode ;
6124import com .grepp .spring .infra .response .ScheduleErrorCode ;
25+ import com .grepp .spring .infra .utils .RandomPicker ;
6226import jakarta .persistence .EntityManager ;
6327import jakarta .persistence .PersistenceContext ;
64- import java .time .format .DateTimeFormatter ;
65- import java .util .ArrayList ;
66- import java .util .List ;
67- import java .util .Optional ;
6828import lombok .RequiredArgsConstructor ;
6929import lombok .extern .slf4j .Slf4j ;
7030import org .springframework .beans .factory .annotation .Autowired ;
7131import org .springframework .beans .factory .annotation .Value ;
72- import org .springframework .http .HttpEntity ;
73- import org .springframework .http .HttpHeaders ;
74- import org .springframework .http .HttpMethod ;
75- import org .springframework .http .MediaType ;
76- import org .springframework .http .ResponseEntity ;
32+ import org .springframework .http .*;
7733import org .springframework .stereotype .Service ;
7834import org .springframework .transaction .annotation .Transactional ;
7935import org .springframework .web .client .RestTemplate ;
8036import org .springframework .web .util .UriComponentsBuilder ;
8137
38+ import java .time .format .DateTimeFormatter ;
39+ import java .util .ArrayList ;
40+ import java .util .List ;
41+ import java .util .Optional ;
42+
8243@ Service
8344@ Slf4j
8445@ RequiredArgsConstructor
@@ -120,9 +81,6 @@ public class ScheduleCommandService {
12081 @ Autowired
12182 private ZoomOAuthService zoomOAuthService ;
12283
123- @ Value ("${zoom.refresh-token}" )
124- private String zoomRefreshToken ;
125-
12684 // 공통 로직
12785 private Optional <Schedule > getSchedule (Long scheduleId ) {
12886 Optional <Schedule > schedule = scheduleQueryRepository .findById (scheduleId );
@@ -183,8 +141,7 @@ private void createScheduleMembers(CreateSchedulesRequest request, Schedule sche
183141
184142 if (entry .getMemberId ().equals (userId )) {
185143 role = ScheduleRole .ROLE_MASTER ;
186- }
187- else {
144+ } else {
188145 role = ScheduleRole .ROLE_MEMBER ;
189146 }
190147
@@ -311,7 +268,7 @@ public void createDepartLocation(Long scheduleId, CreateDepartLocationRequest re
311268 metroTransferCommandRepository .deleteByScheduleId (scheduleId );
312269 locationCommandRepository .deleteLocation (scheduleId );
313270
314- ScheduleMember scheduleMember = getScheduleMember (scheduleId ,userId );
271+ ScheduleMember scheduleMember = getScheduleMember (scheduleId , userId );
315272 Optional <Metro > metro = getMetro (request .getDepartLocationName ());
316273 setDepartLocation (request , metro , scheduleMember );
317274
@@ -378,7 +335,7 @@ private static Double getLatitude(List<ScheduleMember> scheduleLocations) {
378335 }
379336
380337 private static void setDepartLocation (CreateDepartLocationRequest request , Optional <Metro > metro ,
381- ScheduleMember scheduleMember ) {
338+ ScheduleMember scheduleMember ) {
382339 // DB에 존재하지 않는다면
383340 if (metro .isEmpty ()) {
384341 CreateDepartLocationDto dto = CreateDepartLocationDto .toDto (request );
@@ -455,7 +412,7 @@ public void voteMiddleLocation(Schedule schedule, ScheduleMember scheduleMember,
455412 // Location 엔티티에 비관적 락을 걸고 조회하기
456413 // 파라미터를 id로 받으면 더 좋을 것 같음
457414 Location location = locationQueryRepository .findByIdWithPessimisticLock (lid .getId ())
458- .orElseThrow (() -> new IllegalArgumentException ("장소를 찾을 수 없습니다." ));
415+ .orElseThrow (() -> new IllegalArgumentException ("장소를 찾을 수 없습니다." ));
459416// log.info("location = {}", location.toString());
460417
461418
@@ -510,8 +467,7 @@ public CreateOnlineMeetingRoomResponse createOnlineMeeting(Long scheduleId) {
510467 Schedule schedule = scheduleQueryRepository .findById (scheduleId )
511468 .orElseThrow (() -> new NotFoundException ("일정을 찾을 수 없습니다. (ID: " + scheduleId + ")" ));
512469
513- GoogleTokenResponse tokenResponse = zoomOAuthService .refreshAccessToken (zoomRefreshToken );
514- String accessToken = tokenResponse .getAccessToken ();
470+ String accessToken = zoomOAuthService .getAccessToken ();
515471
516472 if (accessToken == null || accessToken .trim ().isEmpty ()) {
517473 throw new IllegalStateException ("Zoom 인증 토큰을 갱신하는데 실패했습니다. 리프레시 토큰을 확인하세요." );
@@ -551,17 +507,17 @@ public CreateOnlineMeetingRoomResponse createOnlineMeeting(Long scheduleId) {
551507
552508 @ Transactional
553509 public void WriteSuggestedLocation (Schedule schedule , WriteSuggestedLocationRequest request ,
554- String userId ) {
510+ String userId ) {
555511
556512 List <Location > locationList = locationQueryRepository .findByScheduleId (schedule .getId ());
557513 boolean bool = true ;
558514
559515 for (Location l : locationList ) {
560- if (l .getVoteCount () != 0 ) bool = false ;
516+ if (l .getVoteCount () != 0 ) bool = false ;
561517 }
562518
563519 if (bool ) {
564- ScheduleMember scheduleMember = getScheduleMember (schedule .getId (),userId );
520+ ScheduleMember scheduleMember = getScheduleMember (schedule .getId (), userId );
565521 Member member = memberRepository .findById (userId ).orElseThrow ();
566522 Optional <Metro > metro = getMetro (request .getLocationName ());
567523
@@ -577,15 +533,14 @@ public void WriteSuggestedLocation(Schedule schedule, WriteSuggestedLocationRequ
577533 MetroTransfer metroTransfer = WriteSuggestedMetroTransferDto .fromDto (dto );
578534 metroTransferCommandRepository .save (metroTransfer );
579535 }
580- }
581- else {
536+ } else {
582537 throw new VoteAlreadyProgressException (ScheduleErrorCode .VOTE_ALREADY_PROGRESS );
583538 }
584539
585540 }
586541
587542 private Location saveSuggestedLocation (Schedule schedule , WriteSuggestedLocationRequest request ,
588- Optional <Metro > metro , Member member ) {
543+ Optional <Metro > metro , Member member ) {
589544 Location location ;
590545 // DB에 존재하지 않는다면
591546 if (metro .isEmpty ()) {
0 commit comments