Skip to content

Commit 7bdbfbd

Browse files
committed
Revert "Merge branch 'dev' into fix/#67"
This reverts commit d46c64c, reversing changes made to 86690a1.
1 parent d46c64c commit 7bdbfbd

File tree

16 files changed

+144
-204
lines changed

16 files changed

+144
-204
lines changed

src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import dmu.dasom.api.domain.applicant.dto.ApplicantDetailsResponseDto;
55
import dmu.dasom.api.domain.applicant.dto.ApplicantResponseDto;
66
import dmu.dasom.api.domain.applicant.dto.ApplicantStatusUpdateRequestDto;
7-
import dmu.dasom.api.domain.google.enums.MailType;
7+
import dmu.dasom.api.domain.email.enums.MailType;
88
import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto;
99
import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto;
1010
import dmu.dasom.api.global.dto.PageResponse;

src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import dmu.dasom.api.domain.applicant.repository.ApplicantRepository;
1010
import dmu.dasom.api.domain.common.exception.CustomException;
1111
import dmu.dasom.api.domain.common.exception.ErrorCode;
12-
import dmu.dasom.api.domain.google.enums.MailType;
13-
import dmu.dasom.api.domain.google.service.EmailService;
12+
import dmu.dasom.api.domain.email.enums.MailType;
13+
import dmu.dasom.api.domain.email.service.EmailService;
1414
import dmu.dasom.api.domain.google.service.GoogleApiService;
1515
import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto;
1616
import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto;

src/main/java/dmu/dasom/api/domain/common/exception/CustomErrorController.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package dmu.dasom.api.domain.common.exception;
22

3-
import io.swagger.v3.oas.annotations.Hidden;
43
import jakarta.servlet.RequestDispatcher;
54
import jakarta.servlet.http.HttpServletRequest;
65
import org.springframework.boot.web.servlet.error.ErrorController;
@@ -9,7 +8,6 @@
98
import org.springframework.web.bind.annotation.RequestMapping;
109
import org.springframework.web.bind.annotation.RestController;
1110

12-
@Hidden
1311
@RestController
1412
public class CustomErrorController implements ErrorController {
1513

src/main/java/dmu/dasom/api/domain/google/enums/MailType.java renamed to src/main/java/dmu/dasom/api/domain/email/enums/MailType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dmu.dasom.api.domain.google.enums;
1+
package dmu.dasom.api.domain.email.enums;
22

33
public enum MailType {
44
DOCUMENT_RESULT, // 서류 합격

src/main/java/dmu/dasom/api/domain/google/service/EmailService.java renamed to src/main/java/dmu/dasom/api/domain/email/service/EmailService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package dmu.dasom.api.domain.google.service;
1+
package dmu.dasom.api.domain.email.service;
22

33
import dmu.dasom.api.domain.common.exception.CustomException;
44
import dmu.dasom.api.domain.common.exception.ErrorCode;
5-
import dmu.dasom.api.domain.google.enums.MailType;
5+
import dmu.dasom.api.domain.email.enums.MailType;
66
import jakarta.mail.MessagingException;
77
import jakarta.mail.internet.MimeMessage;
88
import lombok.RequiredArgsConstructor;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package dmu.dasom.api.domain.google.controller;
2+
3+
import dmu.dasom.api.domain.google.service.GoogleApiService;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.beans.factory.annotation.Value;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.PostMapping;
8+
import org.springframework.web.bind.annotation.RequestMapping;
9+
import org.springframework.web.bind.annotation.RequestParam;
10+
import org.springframework.web.bind.annotation.RestController;
11+
12+
import java.util.Collections;
13+
import java.util.List;
14+
15+
@RestController
16+
@RequestMapping("/google")
17+
@RequiredArgsConstructor
18+
public class GoogleController {
19+
20+
private final GoogleApiService googleApiService;
21+
@Value("${google.spreadsheet.id}")
22+
private String spreadsheetId;
23+
24+
private static final String RANGE = "A1";
25+
26+
@PostMapping("/write")
27+
public ResponseEntity<String> writeToSheet(@RequestParam String word){
28+
try{
29+
List<List<Object>> values = List.of(Collections.singletonList(word));
30+
31+
googleApiService.writeToSheet(spreadsheetId, RANGE, values);
32+
return ResponseEntity.ok("Data written successfully to the spreadsheet" + word);
33+
} catch (Exception e){
34+
e.printStackTrace();
35+
return ResponseEntity.internalServerError().body("Failed to write data to the spreadsheet" + e.getMessage());
36+
}
37+
}
38+
}

src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,21 @@ private Sheets getSheetsService() throws IOException, GeneralSecurityException {
6464
return sheetsService;
6565
}
6666

67+
public void writeToSheet(String spreadsheetId, String range, List<List<Object>> values) {
68+
try {
69+
Sheets service = getSheetsService();
70+
ValueRange body = new ValueRange().setValues(values);
71+
service.spreadsheets()
72+
.values()
73+
.update(spreadsheetId, range, body)
74+
.setValueInputOption("USER_ENTERED")
75+
.execute();
76+
} catch (IOException | GeneralSecurityException e) {
77+
log.error("시트에 데이터를 쓰는 데 실패했습니다.");
78+
throw new CustomException(ErrorCode.WRITE_FAIL);
79+
}
80+
}
81+
6782
public void appendToSheet(List<Applicant> applicants) {
6883
processSheetsUpdate(applicants, true);
6984
}

src/main/java/dmu/dasom/api/domain/member/controller/MemberController.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.swagger.v3.oas.annotations.media.Schema;
1212
import io.swagger.v3.oas.annotations.responses.ApiResponse;
1313
import io.swagger.v3.oas.annotations.responses.ApiResponses;
14-
import io.swagger.v3.oas.annotations.tags.Tag;
1514
import jakarta.validation.Valid;
1615
import lombok.RequiredArgsConstructor;
1716
import org.springframework.http.HttpHeaders;
@@ -22,7 +21,6 @@
2221
@RestController
2322
@RequestMapping("/api")
2423
@RequiredArgsConstructor
25-
@Tag(name = "Member API", description = "회원 관리 API")
2624
public class MemberController {
2725

2826
private final MemberService memberService;

src/main/java/dmu/dasom/api/domain/news/controller/NewsController.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import jakarta.validation.Valid;
1313
import java.util.List;
1414

15-
@Tag(name = "News API", description = "뉴스 API")
15+
@Tag(name = "NEWS API", description = "뉴스 API")
1616
@RestController
1717
@RequiredArgsConstructor
1818
@RequestMapping("/api/news")
@@ -32,4 +32,24 @@ public ResponseEntity<NewsResponseDto> getNewsById(@PathVariable @Min(1) Long id
3232
return ResponseEntity.ok(newsService.getNewsById(id));
3333
}
3434

35+
@Operation(summary = "뉴스 등록")
36+
@PostMapping
37+
public ResponseEntity<NewsCreationResponseDto> createNews(@Valid @RequestBody NewsRequestDto requestDto) {
38+
return ResponseEntity.status(201).body(newsService.createNews(requestDto));
39+
}
40+
41+
@Operation(summary = "뉴스 수정")
42+
@PutMapping("/{id}")
43+
public ResponseEntity<NewsResponseDto> updateNews(@PathVariable @Min(1) Long id,
44+
@Valid @RequestBody NewsUpdateRequestDto requestDto) {
45+
return ResponseEntity.ok(newsService.updateNews(id, requestDto));
46+
}
47+
48+
@Operation(summary = "뉴스 삭제")
49+
@DeleteMapping("/{id}")
50+
public ResponseEntity<Void> deleteNews(@PathVariable Long id) {
51+
newsService.deleteNews(id);
52+
return ResponseEntity.ok().build();
53+
}
54+
3555
}

src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import io.swagger.v3.oas.annotations.media.Schema;
1616
import io.swagger.v3.oas.annotations.responses.ApiResponse;
1717
import io.swagger.v3.oas.annotations.responses.ApiResponses;
18-
import io.swagger.v3.oas.annotations.tags.Tag;
1918
import jakarta.validation.Valid;
2019
import lombok.RequiredArgsConstructor;
2120
import org.springframework.http.ResponseEntity;
@@ -28,7 +27,6 @@
2827
@RestController
2928
@RequestMapping("/api/recruit")
3029
@RequiredArgsConstructor
31-
@Tag(name = "Recruit API", description = "부원 모집 API")
3230
public class RecruitController {
3331

3432
private final ApplicantService applicantService;
@@ -86,6 +84,20 @@ public ResponseEntity<ResultCheckResponseDto> checkResult(@ModelAttribute final
8684
return ResponseEntity.ok(applicantService.checkResult(request));
8785
}
8886

87+
// 면접 일정 생성
88+
@Operation(summary = "면접 일정 생성", description = "새로운 면접 일정을 생성합니다.")
89+
@ApiResponses(value = {
90+
@ApiResponse(responseCode = "200", description = "면접 일정 생성 성공"),
91+
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터")
92+
})
93+
@PostMapping("/interview/schedule")
94+
public ResponseEntity<List<InterviewSlotResponseDto>> createInterviewSlots(@Valid @RequestBody InterviewSlotCreateRequestDto request) {
95+
96+
List<InterviewSlotResponseDto> slots =
97+
interviewService.createInterviewSlots(request.getStartDate(), request.getEndDate(), request.getStartTime(), request.getEndTime());
98+
return ResponseEntity.ok(slots);
99+
}
100+
89101
// 면접 예약
90102
@Operation(summary = "면접 예약", description = "지원자가 특정 면접 슬롯을 예약합니다.")
91103
@ApiResponses(value = {
@@ -116,4 +128,10 @@ public ResponseEntity<List<InterviewSlotResponseDto>> getAllInterviewSlots() {
116128
return ResponseEntity.ok(allSlots);
117129
}
118130

131+
@GetMapping("/interview/applicants")
132+
public ResponseEntity<List<InterviewReservationApplicantResponseDto>> getAllInterviewApplicants() {
133+
List<InterviewReservationApplicantResponseDto> applicants = interviewService.getAllInterviewApplicants();
134+
return ResponseEntity.ok(applicants);
135+
}
136+
119137
}

0 commit comments

Comments
 (0)