Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Expand Up @@ -4,7 +4,7 @@
import dmu.dasom.api.domain.applicant.dto.ApplicantDetailsResponseDto;
import dmu.dasom.api.domain.applicant.dto.ApplicantResponseDto;
import dmu.dasom.api.domain.applicant.dto.ApplicantStatusUpdateRequestDto;
import dmu.dasom.api.domain.email.enums.MailType;
import dmu.dasom.api.domain.google.enums.MailType;
import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto;
import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto;
import dmu.dasom.api.global.dto.PageResponse;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import dmu.dasom.api.domain.applicant.repository.ApplicantRepository;
import dmu.dasom.api.domain.common.exception.CustomException;
import dmu.dasom.api.domain.common.exception.ErrorCode;
import dmu.dasom.api.domain.email.enums.MailType;
import dmu.dasom.api.domain.email.service.EmailService;
import dmu.dasom.api.domain.google.enums.MailType;
import dmu.dasom.api.domain.google.service.EmailService;
import dmu.dasom.api.domain.google.service.GoogleApiService;
import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto;
import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dmu.dasom.api.domain.common.exception;

import io.swagger.v3.oas.annotations.Hidden;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.boot.web.servlet.error.ErrorController;
Expand All @@ -8,6 +9,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Hidden
@RestController
public class CustomErrorController implements ErrorController {

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dmu.dasom.api.domain.email.enums;
package dmu.dasom.api.domain.google.enums;

public enum MailType {
DOCUMENT_RESULT, // 서류 합격
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dmu.dasom.api.domain.email.service;
package dmu.dasom.api.domain.google.service;

import dmu.dasom.api.domain.common.exception.CustomException;
import dmu.dasom.api.domain.common.exception.ErrorCode;
import dmu.dasom.api.domain.email.enums.MailType;
import dmu.dasom.api.domain.google.enums.MailType;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,21 +64,6 @@ private Sheets getSheetsService() throws IOException, GeneralSecurityException {
return sheetsService;
}

public void writeToSheet(String spreadsheetId, String range, List<List<Object>> values) {
try {
Sheets service = getSheetsService();
ValueRange body = new ValueRange().setValues(values);
service.spreadsheets()
.values()
.update(spreadsheetId, range, body)
.setValueInputOption("USER_ENTERED")
.execute();
} catch (IOException | GeneralSecurityException e) {
log.error("시트에 데이터를 쓰는 데 실패했습니다.");
throw new CustomException(ErrorCode.WRITE_FAIL);
}
}

public void appendToSheet(List<Applicant> applicants) {
processSheetsUpdate(applicants, true);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
Expand All @@ -21,6 +22,7 @@
@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
@Tag(name = "Member API", description = "회원 관리 API")
public class MemberController {

private final MemberService memberService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import jakarta.validation.Valid;
import java.util.List;

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

@Operation(summary = "뉴스 등록")
@PostMapping
public ResponseEntity<NewsCreationResponseDto> createNews(@Valid @RequestBody NewsRequestDto requestDto) {
return ResponseEntity.status(201).body(newsService.createNews(requestDto));
}

@Operation(summary = "뉴스 수정")
@PutMapping("/{id}")
public ResponseEntity<NewsResponseDto> updateNews(@PathVariable @Min(1) Long id,
@Valid @RequestBody NewsUpdateRequestDto requestDto) {
return ResponseEntity.ok(newsService.updateNews(id, requestDto));
}

@Operation(summary = "뉴스 삭제")
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteNews(@PathVariable Long id) {
newsService.deleteNews(id);
return ResponseEntity.ok().build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand All @@ -27,6 +28,7 @@
@RestController
@RequestMapping("/api/recruit")
@RequiredArgsConstructor
@Tag(name = "Recruit API", description = "부원 모집 API")
public class RecruitController {

private final ApplicantService applicantService;
Expand Down Expand Up @@ -84,20 +86,6 @@ public ResponseEntity<ResultCheckResponseDto> checkResult(@ModelAttribute final
return ResponseEntity.ok(applicantService.checkResult(request));
}

// 면접 일정 생성
@Operation(summary = "면접 일정 생성", description = "새로운 면접 일정을 생성합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "면접 일정 생성 성공"),
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터")
})
@PostMapping("/interview/schedule")
public ResponseEntity<List<InterviewSlotResponseDto>> createInterviewSlots(@Valid @RequestBody InterviewSlotCreateRequestDto request) {

List<InterviewSlotResponseDto> slots =
interviewService.createInterviewSlots(request.getStartDate(), request.getEndDate(), request.getStartTime(), request.getEndTime());
return ResponseEntity.ok(slots);
}

// 면접 예약
@Operation(summary = "면접 예약", description = "지원자가 특정 면접 슬롯을 예약합니다.")
@ApiResponses(value = {
Expand Down Expand Up @@ -128,10 +116,4 @@ public ResponseEntity<List<InterviewSlotResponseDto>> getAllInterviewSlots() {
return ResponseEntity.ok(allSlots);
}

@GetMapping("/interview/applicants")
public ResponseEntity<List<InterviewReservationApplicantResponseDto>> getAllInterviewApplicants() {
List<InterviewReservationApplicantResponseDto> applicants = interviewService.getAllInterviewApplicants();
return ResponseEntity.ok(applicants);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
import dmu.dasom.api.domain.applicant.dto.ApplicantResponseDto;
import dmu.dasom.api.domain.applicant.dto.ApplicantStatusUpdateRequestDto;
import dmu.dasom.api.domain.applicant.service.ApplicantService;
import dmu.dasom.api.domain.recruit.dto.RecruitScheduleModifyRequestDto;
import dmu.dasom.api.domain.recruit.service.RecruitService;
import dmu.dasom.api.domain.email.enums.MailType;
import dmu.dasom.api.domain.google.enums.MailType;
import dmu.dasom.api.global.dto.PageResponse;

import io.swagger.v3.oas.annotations.Operation;
Expand All @@ -16,6 +14,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import lombok.RequiredArgsConstructor;
Expand All @@ -24,12 +23,12 @@
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/admin")
@RequestMapping("/api/admin/applicants")
@RequiredArgsConstructor
public class AdminController {
@Tag(name = "ADMIN - Applicant API", description = "어드민 지원자 관리 API")
public class AdminApplicantController {

private final ApplicantService applicantService;
private final RecruitService recruitService;

// 지원자 조회
@Operation(summary = "지원자 전체 조회")
Expand All @@ -48,7 +47,7 @@ public class AdminController {
)
)
})
@GetMapping("/applicants")
@GetMapping
public ResponseEntity<PageResponse<ApplicantResponseDto>> getApplicants(
@RequestParam(value = "page", defaultValue = "0") @Min(0) final int page
) {
Expand All @@ -72,7 +71,7 @@ public ResponseEntity<PageResponse<ApplicantResponseDto>> getApplicants(
)
)
})
@GetMapping("/applicants/{id}")
@GetMapping("/{id}")
public ResponseEntity<ApplicantDetailsResponseDto> getApplicant(@PathVariable("id") @Min(0) final Long id) {
return ResponseEntity.ok(applicantService.getApplicant(id));
}
Expand All @@ -94,41 +93,14 @@ public ResponseEntity<ApplicantDetailsResponseDto> getApplicant(@PathVariable("i
)
)
})
@PatchMapping("/applicants/{id}/status")
@PatchMapping("/{id}/status")
public ResponseEntity<ApplicantDetailsResponseDto> updateApplicantStatus(
@PathVariable("id") @Min(0) final Long id,
@Valid @RequestBody final ApplicantStatusUpdateRequestDto request
) {
return ResponseEntity.ok(applicantService.updateApplicantStatus(id, request));
}

// 모집 일정 수정
@Operation(summary = "모집 일정 수정")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "모집 일정 수정 성공"),
@ApiResponse(responseCode = "400", description = "잘못된 요청",
content = @Content(
mediaType = "application/json",
schema = @Schema(implementation = ErrorResponse.class),
examples = {
@ExampleObject(
name = "날짜 형식 오류",
value = "{ \"code\": \"C016\", \"message\": \"날짜 형식이 올바르지 않습니다.\" }"
),
@ExampleObject(
name = "시간 형식 오류",
value = "{ \"code\": \"C017\", \"message\": \"시간 형식이 올바르지 않습니다.\" }"
)
}
)
)
})
@PatchMapping("/recruit/schedule")
public ResponseEntity<Void> modifyRecruitSchedule(@Valid @RequestBody final RecruitScheduleModifyRequestDto request) {
recruitService.modifyRecruitSchedule(request);
return ResponseEntity.ok().build();
}

// 메일 전송
@Operation(
summary = "메일 전송",
Expand All @@ -149,7 +121,7 @@ public ResponseEntity<Void> modifyRecruitSchedule(@Valid @RequestBody final Recr
)
)
})
@PostMapping("/applicants/send-email")
@PostMapping("/send-email")
public ResponseEntity<Void> sendEmailsToApplicants(
@RequestParam
@Parameter(description = "메일 발송 타입", examples = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dmu.dasom.api.global.file.controller;
package dmu.dasom.api.global.admin.controller;

import dmu.dasom.api.domain.common.exception.ErrorResponse;
import dmu.dasom.api.global.file.dto.FileResponseDto;
Expand All @@ -9,6 +9,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.Min;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand All @@ -18,9 +19,10 @@
import java.util.List;

@RestController
@RequestMapping("/api/files")
@RequestMapping("/api/admin/files")
@RequiredArgsConstructor
public class FileController {
@Tag(name = "ADMIN - File API", description = "어드민 파일 관리 API")
public class AdminFileController {

private final FileService fileService;

Expand Down
Loading
Loading