Skip to content

Commit

Permalink
Merge branch 'develop' into feature/#243
Browse files Browse the repository at this point in the history
  • Loading branch information
sss4920 authored Oct 23, 2024
2 parents 81f6717 + c89b4b5 commit fcc6b29
Show file tree
Hide file tree
Showing 32 changed files with 161 additions and 152 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
import com.app.toaster.config.UserId;
import com.app.toaster.controller.request.category.*;
import com.app.toaster.controller.response.category.CategoriesResponse;
import com.app.toaster.controller.response.toast.ToastFilter;
import com.app.toaster.controller.response.category.CategoryResponse;
import com.app.toaster.toast.controller.response.ToastFilter;
import com.app.toaster.controller.response.category.GetCategoryResponseDto;
import com.app.toaster.controller.valid.Severity;
import com.app.toaster.controller.valid.TitleValid;
Expand All @@ -14,14 +13,12 @@
import com.app.toaster.service.search.SearchService;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/category")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@
import org.springframework.web.bind.annotation.*;

import com.app.toaster.common.dto.ApiResponse;
import com.app.toaster.config.UserId;
import com.app.toaster.controller.valid.TitleValid;
import com.app.toaster.service.UserService;
import com.app.toaster.service.search.SearchService;
import com.app.toaster.service.toast.ToastService;

import lombok.RequiredArgsConstructor;

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package com.app.toaster.controller.response.category;

import com.app.toaster.controller.response.auth.TokenResponseDto;
import com.app.toaster.controller.response.toast.ToastDto;
import com.app.toaster.domain.Toast;
import com.app.toaster.toast.controller.response.ToastDto;
import lombok.Builder;

import java.util.ArrayList;
import java.util.List;

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

import java.util.List;

import com.app.toaster.controller.response.toast.ToastDto;
import com.app.toaster.toast.controller.response.ToastDto;

public record SearchMainResult(String keyword, List<ToastDto> toasts, List<CategoryResult> categories) {
public static SearchMainResult of(String keyword, List<ToastDto> toasts, List<CategoryResult> categories){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@
String message() default "Invalid title";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
String pattern() default "[가-힣|a-z|A-Z|0-9|]";
String pattern() default "^[\\S][가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z0-9\\s]{0,20}$";
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package com.app.toaster.controller.valid;


import com.app.toaster.exception.Error;
import com.app.toaster.exception.model.CustomException;

import com.app.toaster.controller.valid.marker.ToastValidationGroup;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

public class TitleValidator implements ConstraintValidator<TitleValid, String> {

public String pattern;
private String pattern;
private Class<?>[] groups;
@Override
public void initialize(TitleValid constraintAnnotation) {
this.pattern = constraintAnnotation.pattern();
this.groups = constraintAnnotation.groups();
}

@Override
Expand All @@ -39,18 +38,27 @@ public boolean isValid(String title, ConstraintValidatorContext context) {
return false;
}

if(title.length()>15){
if(!isGroupActive(ToastValidationGroup.class) && title.length()>15){ //토스트쪽이 아니면 검증을 합니다.
context.buildConstraintViolationWithTemplate("이름은 최대 15자까지 입력 가능해요")
.addConstraintViolation();
return false;
}

if(!title.matches("^[\\S][가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z0-9\\s]{0,20}$")){
if(!title.matches(pattern)){
context.buildConstraintViolationWithTemplate("특수 문자로는 검색할 수 없어요.")
.addConstraintViolation();
return false;
}

return true;
}

private boolean isGroupActive(Class<?> targetGroup) {
for (Class<?> group : groups) {
if (group.equals(targetGroup)) {
return true;
}
}
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.app.toaster.controller.valid.marker;

public interface ToastValidationGroup {
}
2 changes: 2 additions & 0 deletions linkmind/src/main/java/com/app/toaster/exception/Success.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public enum Success {
GET_SITES_SUCCESS(HttpStatus.OK, "추천 사이트 조회 성공"),
GET_SETTINGS_SUCCESS(HttpStatus.OK, "설정 페이지 조회 성공"),
GET_POPUP_SUCCESS(HttpStatus.OK, "팝업 정보 조회 성공"),
GET_RECENT_TOAST_SUCCESS(HttpStatus.OK, "최근 저장한 토스트 조회 성공"),

GET_CATEORIES_SUCCESS(HttpStatus.OK, "전체 카테고리 조회 성공"),
GET_CATEORY_SUCCESS(HttpStatus.OK, "세부 카테고리 조회 성공"),
Expand All @@ -47,6 +48,7 @@ public enum Success {

UPDATE_ISREAD_SUCCESS(HttpStatus.OK, "열람여부 수정 완료"),
UPDATE_CATEGORY_TITLE_SUCCESS(HttpStatus.OK, "카테고리 수정 완료"),
MOVE_CATEGORY_SUCCESS(HttpStatus.OK, "카테고리 이동 성공"),
UPDATE_TIMER_DATETIME_SUCCESS(HttpStatus.OK, "타이머 시간/날짜 수정 완료"),
UPDATE_TIMER_COMMENT_SUCCESS(HttpStatus.OK, "타이머 코멘트 수정 완료"),
CHANGE_TIMER_ALARM_SUCCESS(HttpStatus.OK, "타이머 알람여부 수정 완료"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// import com.app.toaster.domain.Category;
// import com.app.toaster.domain.QToast;
// import com.app.toaster.domain.QUser;
// import com.app.toaster.domain.Toast;
// import com.app.toaster.toast.domain.Toast;
// import com.app.toaster.domain.User;
// import com.querydsl.core.types.Path;
// import com.querydsl.core.types.dsl.BooleanExpression;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import com.app.toaster.exception.Error;
import com.app.toaster.exception.model.BadRequestException;
import com.app.toaster.exception.model.NotFoundException;
import com.app.toaster.infrastructure.ToastRepository;
import com.app.toaster.toast.infrastructure.ToastRepository;
import com.app.toaster.infrastructure.UserRepository;

// import com.app.toaster.infrastructure.querydsl.CustomToastRepository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.WebRequest;

import com.app.toaster.common.dto.ApiResponse;

import com.app.toaster.config.jwt.JwtService;
import com.app.toaster.controller.request.auth.SignInRequestDto;
import com.app.toaster.controller.response.auth.SignInResponseDto;
Expand All @@ -19,7 +19,6 @@
import com.app.toaster.domain.User;
import com.app.toaster.exception.Error;
import com.app.toaster.exception.Success;
import com.app.toaster.exception.model.BadRequestException;
import com.app.toaster.exception.model.CustomException;
import com.app.toaster.exception.model.NotFoundException;
import com.app.toaster.exception.model.UnprocessableEntityException;
Expand All @@ -29,14 +28,13 @@
import com.app.toaster.external.client.slack.SlackApi;
import com.app.toaster.infrastructure.CategoryRepository;
import com.app.toaster.infrastructure.TimerRepository;
import com.app.toaster.infrastructure.ToastRepository;
import com.app.toaster.toast.infrastructure.ToastRepository;
import com.app.toaster.infrastructure.UserRepository;
import com.app.toaster.popup.entity.PopupInvisibleManager;
import com.app.toaster.popup.infrastructure.PopupManagerRepository;
import com.app.toaster.service.auth.apple.AppleSignInService;
import com.app.toaster.service.auth.kakao.KakaoSignInService;
import com.app.toaster.service.auth.kakao.LoginResult;
import com.app.toaster.service.toast.ToastService;
import com.app.toaster.toast.service.ToastService;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
import com.app.toaster.controller.request.category.*;
import com.app.toaster.controller.response.category.CategoriesResponse;
import com.app.toaster.controller.response.category.DuplicatedResponse;
import com.app.toaster.controller.response.toast.ToastDto;
import com.app.toaster.controller.response.toast.ToastFilter;
import com.app.toaster.toast.controller.response.ToastDto;
import com.app.toaster.toast.controller.response.ToastFilter;
import com.app.toaster.controller.response.category.CategoryResponse;
import com.app.toaster.controller.response.category.GetCategoryResponseDto;
import com.app.toaster.domain.Category;
import com.app.toaster.domain.Reminder;
import com.app.toaster.domain.Toast;
import com.app.toaster.toast.domain.Toast;
import com.app.toaster.domain.User;
import com.app.toaster.exception.Error;
import com.app.toaster.exception.model.BadRequestException;
import com.app.toaster.exception.model.CustomException;
import com.app.toaster.exception.model.NotFoundException;
import com.app.toaster.infrastructure.CategoryRepository;
import com.app.toaster.infrastructure.TimerRepository;
import com.app.toaster.infrastructure.ToastRepository;
import com.app.toaster.toast.infrastructure.ToastRepository;
import com.app.toaster.infrastructure.UserRepository;

import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.app.toaster.service.link;

import com.app.toaster.controller.response.toast.WeekLinkDto;
import com.app.toaster.toast.controller.response.WeekLinkDto;
import com.app.toaster.domain.Link;
import com.app.toaster.infrastructure.LinkRepository;
import lombok.RequiredArgsConstructor;
Expand All @@ -9,10 +9,7 @@

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.Period;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,19 @@

import com.app.toaster.common.dto.ApiResponse;
import com.app.toaster.controller.response.search.CategoryResult;
import com.app.toaster.controller.response.search.SearchCategoryResult;
import com.app.toaster.controller.response.search.SearchMainResult;
import com.app.toaster.controller.response.search.ToastResult;
import com.app.toaster.controller.response.toast.ToastDto;
import com.app.toaster.toast.controller.response.ToastDto;
import com.app.toaster.domain.Category;
import com.app.toaster.domain.Toast;
import com.app.toaster.toast.domain.Toast;
import com.app.toaster.domain.User;
import com.app.toaster.exception.Error;
import com.app.toaster.exception.Success;
import com.app.toaster.exception.model.BadRequestException;
import com.app.toaster.exception.model.CustomException;
import com.app.toaster.exception.model.NotFoundException;
import com.app.toaster.infrastructure.CategoryRepository;
import com.app.toaster.infrastructure.ToastRepository;
import com.app.toaster.toast.infrastructure.ToastRepository;
import com.app.toaster.infrastructure.UserRepository;
import com.google.protobuf.Api;

import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;

@Service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.app.toaster.controller;
package com.app.toaster.toast.controller;

import java.io.IOException;
import java.util.List;

import com.app.toaster.controller.request.toast.UpdateToastDto;
import com.app.toaster.controller.response.toast.ModifiedTitle;
import com.app.toaster.controller.response.toast.WeekLinkDto;
import com.app.toaster.service.link.LinkService;
import com.app.toaster.toast.controller.request.*;
import com.app.toaster.toast.controller.response.*;
import org.springframework.http.HttpStatus;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
Expand All @@ -22,13 +21,9 @@
import com.app.toaster.common.dto.ApiResponse;
// import com.app.toaster.config.UserId;
import com.app.toaster.config.UserId;
import com.app.toaster.controller.request.toast.IsReadDto;
import com.app.toaster.controller.request.toast.OgRequestDto;
import com.app.toaster.controller.request.toast.SaveToastDto;
import com.app.toaster.controller.response.toast.IsReadResponse;
import com.app.toaster.exception.Success;
import com.app.toaster.service.parse.ParsingService;
import com.app.toaster.service.toast.ToastService;
import com.app.toaster.toast.service.ToastService;

import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
Expand All @@ -44,6 +39,7 @@ public class ToastController {

@PostMapping("/og")
@ResponseStatus(HttpStatus.OK)
@Deprecated
public ApiResponse getOgAdvanced(
@RequestBody OgRequestDto ogRequestDto
) throws IOException {
Expand Down Expand Up @@ -89,6 +85,14 @@ public ApiResponse<List<WeekLinkDto>> getWeekLinks(
return ApiResponse.success(Success.GET_LINKS_SUCCESS, linkService.getWeekLinks());
}

@GetMapping("/recent-saved")
@ResponseStatus(HttpStatus.OK)
public ApiResponse<List<ToastDto>> getRecentSavedLinks(
@UserId Long userId
) {
return ApiResponse.success(Success.GET_RECENT_TOAST_SUCCESS, toastService.getToastTop3_savedRecently(userId));
}

@PatchMapping("/title")
@ResponseStatus(HttpStatus.OK)
public ApiResponse<ModifiedTitle> modifyTitle(
Expand All @@ -98,5 +102,13 @@ public ApiResponse<ModifiedTitle> modifyTitle(
return ApiResponse.success(Success.UPDATE_TOAST_TITLE_SUCCESS, toastService.modifyTitle(userId,updateToastDto));
}

@PatchMapping("/category")
@ResponseStatus(HttpStatus.OK)
public ApiResponse<ModifiedCategory> modifyCategory(
@UserId Long userId,
@Valid @RequestBody MoveToastDto updateToastDto
){
return ApiResponse.success(Success.MOVE_CATEGORY_SUCCESS, toastService.modifyClip(userId,updateToastDto));
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.app.toaster.controller.request.toast;
package com.app.toaster.toast.controller.request;

public record IsReadDto(Long toastId, Boolean isRead) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.app.toaster.toast.controller.request;

import jakarta.validation.constraints.NotNull;

public record MoveToastDto(@NotNull Long toastId, @NotNull Long categoryId) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.app.toaster.toast.controller.request;

public record OgRequestDto(String linkUrl) {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.app.toaster.controller.request.toast;
package com.app.toaster.toast.controller.request;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.app.toaster.controller.request.toast;
package com.app.toaster.toast.controller.request;

import com.app.toaster.controller.valid.Severity;
import com.app.toaster.controller.valid.TitleValid;

import com.app.toaster.controller.valid.marker.ToastValidationGroup;
import jakarta.validation.constraints.NotNull;

public record UpdateToastDto(Long toastId, @TitleValid(payload = Severity.Error.class) @NotNull String title) {
public record UpdateToastDto(Long toastId, @TitleValid(payload = Severity.Error.class, groups = {ToastValidationGroup.class}) @NotNull String title) {
public static UpdateToastDto of(Long toastId, String title){
return new UpdateToastDto(toastId,title);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.app.toaster.controller.response.toast;
package com.app.toaster.toast.controller.response;

public record IsReadResponse(Boolean isRead) {
public static IsReadResponse of(Boolean isRead){
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.app.toaster.toast.controller.response;

public record ModifiedCategory(Long categoryId) {
public static ModifiedCategory of(Long categoryId){
return new ModifiedCategory(categoryId);
}
}
Loading

0 comments on commit fcc6b29

Please sign in to comment.