Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DTO 패키지 코틀린으로 변환 #56

Merged
merged 15 commits into from
Dec 19, 2024
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 @@ -12,33 +12,33 @@
@Aspect
@Component
public class LoginAspect {
/**
* 특정 메서드에 @AddLoginStatusAttribute 어노테이션이 있으면
* 메서드 실행 전후에 이 advice가 실행됩니다.
* Model에 login 상태 부여
*/
@Around("@annotation(com.comssa.api.login.aspect.AddLoginStatusAttributeToView)")
public Object addLoginStatusAttribute(ProceedingJoinPoint joinPoint) throws Throwable {
// 현재 메서드의 파라미터 가져오기
Object[] args = joinPoint.getArgs();
/**
* 특정 메서드에 @AddLoginStatusAttribute 어노테이션이 있으면
* 메서드 실행 전후에 이 advice가 실행됩니다.
* Model에 login 상태 부여
*/
@Around("@annotation(com.comssa.api.login.aspect.AddLoginStatusAttributeToView)")
public Object addLoginStatusAttribute(ProceedingJoinPoint joinPoint) throws Throwable {
// 현재 메서드의 파라미터 가져오기
Object[] args = joinPoint.getArgs();

// Model 파라미터 찾기
for (Object arg : args) {
if (arg instanceof Model) {
Model model = (Model) arg;
// 인증 상태 확인 및 isLogin 속성 추가
// Model 파라미터 찾기
for (Object arg : args) {
if (arg instanceof Model) {
Model model = (Model) arg;
// 인증 상태 확인 및 isLogin 속성 추가

// cognito 요청을 하면 자동으로 저장 됨.
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
// cognito 요청을 하면 자동으로 저장 됨.
Authentication auth = SecurityContextHolder.getContext().getAuthentication();

// 시큐리티 컨텍스트에 유저 관련 정보가 저장되어있다면
boolean isAuthenticated =
auth != null && auth.isAuthenticated() && !(auth instanceof AnonymousAuthenticationToken);
model.addAttribute("isLogin", isAuthenticated);
}
}
// 시큐리티 컨텍스트에 유저 관련 정보가 저장되어있다면
boolean isAuthenticated =
auth != null && auth.isAuthenticated() && !(auth instanceof AnonymousAuthenticationToken);
model.addAttribute("isLogin", isAuthenticated);
}
}

// 메서드 실행
return joinPoint.proceed(args);
}
// 메서드 실행
return joinPoint.proceed(args);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.comssa.api.question.controller.rest.common;

import com.comssa.api.question.service.rest.common.implement.QuestionChoiceUpdateService;
import com.comssa.persistence.question.common.dto.request.RequestChangeContentDto;
import com.comssa.persistence.question.common.dto.response.ResponseQuestionChoiceDto;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionContentDto;
import com.comssa.persistence.question.dto.common.response.ResponseQuestionChoiceDto;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand All @@ -23,19 +23,19 @@ public class QuestionChoiceUpdateController {
@PatchMapping(value = "/question/common/choice/{id}")
public ResponseEntity<ResponseQuestionChoiceDto> changeChoiceContent(
@PathVariable("id") Long choiceId,
@RequestBody RequestChangeContentDto requestChangeContentDto) {
@RequestBody RequestChangeQuestionContentDto requestChangeQuestionContentDto) {

return ResponseEntity.ok(ResponseQuestionChoiceDto.of(
return ResponseEntity.ok(ResponseQuestionChoiceDto.from(
questionChoiceUpdateService.changeContent(
choiceId,
requestChangeContentDto)));
requestChangeQuestionContentDto)));
}

@ApiOperation("단답형 선택지 업데이트 - 정답 여부 변경")
@PatchMapping(value = "/question/common/choice/{id}/toggle")
public ResponseEntity<ResponseQuestionChoiceDto> changeChoiceContent(
@PathVariable("id") Long licenseChoiceId) {
return ResponseEntity.ok(ResponseQuestionChoiceDto.of(
return ResponseEntity.ok(ResponseQuestionChoiceDto.from(
questionChoiceUpdateService
.toggleAnswerStatus(
licenseChoiceId)));
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@


import com.comssa.api.question.service.rest.common.implement.QuestionUpdateService;
import com.comssa.persistence.question.common.dto.request.RequestChangeContentDto;
import com.comssa.persistence.question.common.dto.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionContentDto;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionDescriptionDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
Expand All @@ -26,7 +26,7 @@ public class QuestionUpdateController {

@ApiOperation("문제 개시 허용")
@PatchMapping(value = "/question/common/{id}/toggle-approve")
public ResponseEntity<ResponseMultipleChoiceQuestionDto> toggleApproveNormalQuestion(
public ResponseEntity<Void> toggleApproveNormalQuestion(
@PathVariable("id") Long questionId
) {
questionUpdateService.toggleApprove(questionId);
Expand All @@ -35,20 +35,20 @@ public ResponseEntity<ResponseMultipleChoiceQuestionDto> toggleApproveNormalQues

@ApiOperation("문제 본문 업데이트")
@PatchMapping(value = "/question/common/{id}/content")
public ResponseEntity<ResponseMultipleChoiceQuestionDto> changeQuestion(
public ResponseEntity<Void> changeQuestion(
@PathVariable("id") Long questionId,
@RequestBody RequestChangeContentDto requestChangeContentDto) {
questionUpdateService.changeContent(questionId, requestChangeContentDto);
@RequestBody RequestChangeQuestionContentDto requestChangeQuestionContentDto) {
questionUpdateService.changeContent(questionId, requestChangeQuestionContentDto);
return ResponseEntity.ok().build();
}

@ApiOperation("해설 업데이트")
@PatchMapping(value = "/question/common/{id}/description")
public ResponseEntity<ResponseMultipleChoiceQuestionDto> changeDescription(
public ResponseEntity<Void> changeDescription(
@PathVariable("id") Long questionId,
@RequestBody RequestChangeContentDto requestChangeContentDto
@RequestBody RequestChangeQuestionDescriptionDto requestChangeQuestionDescriptionDto
) {
questionUpdateService.changeDescription(questionId, requestChangeContentDto);
questionUpdateService.changeDescription(questionId, requestChangeQuestionDescriptionDto);
return ResponseEntity.ok().build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.comssa.api.question.controller.rest.license;

import com.comssa.api.question.service.rest.license.implement.AdminLicenseQuestionMakeService;
import com.comssa.persistence.question.common.dto.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.license.dto.request.RequestMakeLicenseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.common.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.license.request.RequestMakeLicenseMultipleChoiceQuestionDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import com.comssa.api.question.service.rest.major.AdminMajorQuestionMakeService;
import com.comssa.api.question.service.rest.major.implement.AdminMajorMultipleChoiceQuestionUpdateService;
import com.comssa.persistence.question.common.dto.response.ResponseDescriptiveQuestionDto;
import com.comssa.persistence.question.common.dto.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.major.admin.dto.RequestMakeMajorDescriptiveQuestionDto;
import com.comssa.persistence.question.major.admin.dto.RequestMakeMajorMultipleChoiceQuestionDto;
import com.comssa.persistence.question.major.admin.dto.ResponseMajorMultipleChoiceQuestionForAdminDto;
import com.comssa.persistence.question.dto.common.request.RequestMakeMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.common.response.ResponseDescriptiveQuestionDto;
import com.comssa.persistence.question.dto.common.response.ResponseMultipleChoiceQuestionDto;
import com.comssa.persistence.question.dto.common.response.ResponseQuestionDto;
import com.comssa.persistence.question.dto.major.request.RequestMakeMajorDescriptiveQuestionDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
Expand All @@ -33,19 +33,20 @@ public class AdminMajorQuestionController {
@ApiOperation("단답형 문제 리스트로 생성")
@PostMapping(value = "/question/major/multiple")
public ResponseEntity<List<ResponseMultipleChoiceQuestionDto>> makeMultiMajorQuestion(
@RequestBody List<RequestMakeMajorMultipleChoiceQuestionDto> requestMakeMajorMultipleChoiceQuestionDtos) {
@RequestBody List<RequestMakeMultipleChoiceQuestionDto> requestMakeMultipleChoiceQuestionDtos) {
return ResponseEntity.ok(
adminMajorQuestionMakeService.makeMultipleChoiceQuestions(requestMakeMajorMultipleChoiceQuestionDtos)
adminMajorQuestionMakeService
.makeMultipleChoiceQuestions(requestMakeMultipleChoiceQuestionDtos)
.stream()
.map(ResponseMultipleChoiceQuestionDto::forAdmin)
.map(question -> (ResponseMultipleChoiceQuestionDto) ResponseQuestionDto.from(question))
.collect(Collectors.toList()));
}

@ApiOperation("단답형 문제 상태 업데이트 - 단답형-주관식 토글")
@PatchMapping(value = "/question/major/multiple/{id}/toggle-multiple")
public ResponseEntity<ResponseMultipleChoiceQuestionDto> toggleCanBeShortAnswered(
@PathVariable("id") Long questionId) {
return ResponseEntity.ok(ResponseMajorMultipleChoiceQuestionForAdminDto.forAdmin(
return ResponseEntity.ok(ResponseQuestionDto.from(
adminMajorMultipleChoiceQuestionUpdateService.toggleCanBeShortAnswered(questionId)));
}

Expand All @@ -55,13 +56,11 @@ public ResponseEntity<List<ResponseDescriptiveQuestionDto>> makeDescriptiveQuest
@RequestBody List<RequestMakeMajorDescriptiveQuestionDto> requestMakeMajorDescriptiveQuestionDtos
) {
return ResponseEntity.ok(
adminMajorQuestionMakeService.makeDescriptiveQuestions(
requestMakeMajorDescriptiveQuestionDtos
)
adminMajorQuestionMakeService
.makeDescriptiveQuestions(requestMakeMajorDescriptiveQuestionDtos)
.stream()
.map(ResponseDescriptiveQuestionDto::forMajor)
.collect(Collectors.toList())
);
.map(question -> (ResponseDescriptiveQuestionDto) ResponseQuestionDto.from(question))
.collect(Collectors.toList()));
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import com.comssa.api.login.aspect.AddLoginStatusAttributeToView;
import com.comssa.api.question.service.rest.common.QuestionSelectorService;
import com.comssa.api.question.service.view.HtmlTagService;
import com.comssa.persistence.question.license.domain.LicenseCategory;
import com.comssa.persistence.question.license.dto.response.ResponseLicenseSessionDto;
import com.comssa.persistence.question.license.dto.response.ResponseLicensesDto;
import com.comssa.persistence.question.domain.license.LicenseCategory;
import com.comssa.persistence.question.dto.license.response.ResponseLicenseSessionDto;
import com.comssa.persistence.question.dto.license.response.ResponseLicensesDto;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import com.comssa.api.question.domain.QuestionType;
import com.comssa.api.question.service.rest.license.implement.AdminLicenseQuestionGetService;
import com.comssa.api.question.service.rest.major.AdminMajorQuestionClassifiedGetService;
import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.domain.QuestionCategory;
import com.comssa.persistence.question.common.dto.response.ResponseClassifiedQuestionDto;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.dto.common.response.ResponseClassifiedQuestionDto;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import com.comssa.api.question.service.rest.license.implement.UserLicenseQuestionGetService;
import com.comssa.api.question.service.rest.major.implement.UserMajorQuestionClassifiedGetService;
import com.comssa.api.question.service.view.HtmlTagService;
import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.domain.QuestionCategory;
import com.comssa.persistence.question.common.dto.response.ResponseClassifiedQuestionDto;
import com.comssa.persistence.question.license.domain.LicenseSession;
import com.comssa.persistence.question.major.user.dto.request.RequestGetQuestionByCategoryAndLevelDto;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.domain.license.LicenseSession;
import com.comssa.persistence.question.dto.common.response.ResponseClassifiedQuestionDto;
import com.comssa.persistence.question.dto.major.request.RequestGetQuestionByCategoryAndLevelDto;
import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.comssa.api.question.service.rest.common;


import com.comssa.persistence.question.major.domain.common.MajorQuestionChoice;
import com.comssa.persistence.question.domain.major.MajorQuestionChoice;
import org.springframework.stereotype.Service;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.comssa.api.question.service.rest.common;


import com.comssa.persistence.question.common.domain.QuestionChoice;
import com.comssa.persistence.question.domain.common.QuestionChoice;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.comssa.api.question.service.rest.common;

import com.comssa.persistence.question.common.domain.QuestionChoice;
import com.comssa.persistence.question.common.dto.request.RequestChangeContentDto;
import com.comssa.persistence.question.domain.common.QuestionChoice;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionContentDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public interface QuestionChoiceUpdateService<T extends QuestionChoice> {

default T changeContent(Long questionChoiceId, RequestChangeContentDto requestChangeContentDto) {
default T changeContent(Long questionChoiceId, RequestChangeQuestionContentDto requestChangeQuestionContentDto) {
T questionChoice = findById(questionChoiceId);
questionChoice.changeContent(requestChangeContentDto.getContent());
questionChoice.changeContent(requestChangeQuestionContentDto.getContent());
return questionChoice;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.comssa.api.question.service.rest.common;


import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.domain.QuestionCategory;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public interface QuestionClassifyByCategoryService {
Map<QuestionCategory, List<Question>> classifyQuestionByCategoryOrdered(List<? extends Question> questions);
Map<QuestionCategory, List<Question>> classifyQuestionByCategoryOrdered(List<? extends Question> questions);
}

Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.comssa.api.question.service.rest.common;


import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.domain.QuestionCategory;
import com.comssa.persistence.question.license.domain.LicenseCategory;
import com.comssa.persistence.question.license.domain.LicenseSession;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import com.comssa.persistence.question.domain.license.LicenseCategory;
import com.comssa.persistence.question.domain.license.LicenseSession;
import org.springframework.stereotype.Service;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.comssa.api.question.service.rest.common;


import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.dto.request.RequestChangeContentDto;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionContentDto;
import com.comssa.persistence.question.dto.common.request.RequestChangeQuestionDescriptionDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -13,16 +14,16 @@
public interface QuestionUpdateService<T extends Question> {

// 기본 구현이 필요한 메서드에 default 사용
default T changeDescription(Long questionId, RequestChangeContentDto requestChangeContentDto) {
default T changeDescription(
Long questionId, RequestChangeQuestionDescriptionDto requestChangeQuestionDescriptionDto) {
T question = findById(questionId);
System.out.println(question);
question.changeDescription(requestChangeContentDto.getContent());
question.changeDescription(requestChangeQuestionDescriptionDto.getDescription());
return question;
}

default T changeContent(Long questionId, RequestChangeContentDto requestChangeContentDto) {
default T changeContent(Long questionId, RequestChangeQuestionContentDto requestChangeQuestionContentDto) {
T question = findById(questionId);
question.changeContent(requestChangeContentDto.getContent());
question.changeContent(requestChangeQuestionContentDto.getContent());
return question;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@


import com.comssa.api.question.service.rest.common.QuestionClassifyByCategoryService;
import com.comssa.persistence.question.common.domain.Question;
import com.comssa.persistence.question.common.domain.QuestionCategory;
import com.comssa.persistence.question.domain.common.Question;
import com.comssa.persistence.question.domain.common.QuestionCategory;
import org.springframework.stereotype.Service;

import java.util.LinkedHashMap;
Expand Down
Loading
Loading