From ce9c43e2b115dc3c4d87541fc0adb0a6b2efa443 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 1 Apr 2024 20:43:31 +0900 Subject: [PATCH 01/11] dev environment --- .../org/poolc/api/auth/configurations/WebSecurityConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/poolc/api/auth/configurations/WebSecurityConfig.java b/src/main/java/org/poolc/api/auth/configurations/WebSecurityConfig.java index 760c1035..a7d6626e 100644 --- a/src/main/java/org/poolc/api/auth/configurations/WebSecurityConfig.java +++ b/src/main/java/org/poolc/api/auth/configurations/WebSecurityConfig.java @@ -43,6 +43,7 @@ public CorsConfigurationSource corsConfigurationSource() { "https://server.poolc.kr", "http://server.poolc.kr", "http://poolc.kr","https://poolc.kr", "https://poolc.org", "http://poolc.org","https://poolc.org/api", "http://poolc.org/api", + "https://dev.poolc.org", "http://dev.poolc.org","https://dev.poolc.org/api", "http://dev.poolc.org/api", "chrome-extension://doeamknhlolnflkmhbhkagganhjjbefe" )); configuration.setAllowedHeaders(Arrays.asList( From 0b0e08eda45515346a67ce4513dba795605ec9de Mon Sep 17 00:00:00 2001 From: jimmy0006 <45549879+jimmy0006@users.noreply.github.com> Date: Mon, 1 Apr 2024 20:47:25 +0900 Subject: [PATCH 02/11] Update dev.yml --- .github/workflows/dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index a173e988..36a51ec4 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -61,3 +61,4 @@ jobs: # cd dockercompose/palkia # docker compose down # docker compose up -d --build + From 33d167c824cd87f74cd8c3bec2a8299be37039d0 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 1 Apr 2024 20:59:53 +0900 Subject: [PATCH 03/11] dev environment --- src/main/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b3b0d83c..e294245d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,7 +12,7 @@ spring: max-file-size: 50MB jpa: hibernate: - ddl-auto: update + ddl-auto: create mail: default-encoding: UTF-8 host: smtp.naver.com From 82c76b099033aaa952d311644d2233a6e7c9ab81 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 1 Apr 2024 21:02:29 +0900 Subject: [PATCH 04/11] dev environment --- src/main/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e294245d..b3b0d83c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,7 +12,7 @@ spring: max-file-size: 50MB jpa: hibernate: - ddl-auto: create + ddl-auto: update mail: default-encoding: UTF-8 host: smtp.naver.com From e226333ae09a0616d855018db276b888d02e89be Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 8 Apr 2024 21:11:35 +0900 Subject: [PATCH 05/11] feat:add RandomString in posting file --- .../poolc/api/file/controller/FileController.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/poolc/api/file/controller/FileController.java b/src/main/java/org/poolc/api/file/controller/FileController.java index 5a5ee7b5..40643bc5 100644 --- a/src/main/java/org/poolc/api/file/controller/FileController.java +++ b/src/main/java/org/poolc/api/file/controller/FileController.java @@ -18,6 +18,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Random; @RestController @RequiredArgsConstructor @@ -47,7 +48,7 @@ public ResponseEntity sendFile(@PathVariable(name = "fileName") String fileName) @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity uploadFile(@ModelAttribute MultipartFile file) { try { - String fileNameWithOutSpace = file.getOriginalFilename().replace(' ', '-'); + String fileNameWithOutSpace = file.getOriginalFilename().replace(' ', '-')+RandomStringGenerator(); Path path = Paths.get(fileDir + fileNameWithOutSpace); if (Files.exists(path)) { return ResponseEntity.badRequest().body("이미 존재하는 파일명입니다. 파일 명을 수정해주세요"); @@ -58,4 +59,15 @@ public ResponseEntity uploadFile(@ModelAttribute MultipartFile file) { return ResponseEntity.badRequest().body(e.getMessage()); } } + + private String RandomStringGenerator(){ + String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + StringBuilder salt = new StringBuilder(); + Random rnd = new Random(); + for(int i=0;i<7;i++){ + int index = (int) (rnd.nextFloat() * SALTCHARS.length()); + salt.append(SALTCHARS.charAt(index)); + } + return salt.toString(); + } } From 19805359913590f3b5b22a1eb0b477e128277583 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 8 Apr 2024 21:15:51 +0900 Subject: [PATCH 06/11] feat:add RandomString in posting file --- src/main/java/org/poolc/api/file/controller/FileController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/poolc/api/file/controller/FileController.java b/src/main/java/org/poolc/api/file/controller/FileController.java index 40643bc5..651b62f7 100644 --- a/src/main/java/org/poolc/api/file/controller/FileController.java +++ b/src/main/java/org/poolc/api/file/controller/FileController.java @@ -48,7 +48,7 @@ public ResponseEntity sendFile(@PathVariable(name = "fileName") String fileName) @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity uploadFile(@ModelAttribute MultipartFile file) { try { - String fileNameWithOutSpace = file.getOriginalFilename().replace(' ', '-')+RandomStringGenerator(); + String fileNameWithOutSpace = RandomStringGenerator()+file.getOriginalFilename().replace(' ', '-'); Path path = Paths.get(fileDir + fileNameWithOutSpace); if (Files.exists(path)) { return ResponseEntity.badRequest().body("이미 존재하는 파일명입니다. 파일 명을 수정해주세요"); From da473bda3017bd093945840fd71adec57f2ccf9a Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 8 Apr 2024 21:39:11 +0900 Subject: [PATCH 07/11] fix:remove not using body data --- .../controller/ActivityController.java | 8 ++-- .../activity/dto/GetActivitiesResponse.java | 46 +++++++++++++++++++ 2 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java diff --git a/src/main/java/org/poolc/api/activity/controller/ActivityController.java b/src/main/java/org/poolc/api/activity/controller/ActivityController.java index 9457cd06..66cce990 100644 --- a/src/main/java/org/poolc/api/activity/controller/ActivityController.java +++ b/src/main/java/org/poolc/api/activity/controller/ActivityController.java @@ -26,18 +26,18 @@ public class ActivityController { private final SessionService sessionService; @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity>> findActivities(@RequestParam Optional when) { - Map> result = new HashMap<>(); + public ResponseEntity>> findActivities(@RequestParam Optional when) { + Map> result = new HashMap<>(); when.ifPresentOrElse( (val) -> { result.put("data", activityService.findActivitiesInSemester(val).stream() - .map(ActivityResponse::of) + .map(GetActivitiesResponse::of) .collect(toList())); }, () -> { result.put("data", activityService.findActivities().stream() - .map(ActivityResponse::of) + .map(GetActivitiesResponse::of) .collect(toList())); } ); diff --git a/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java b/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java new file mode 100644 index 00000000..e470b4f8 --- /dev/null +++ b/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java @@ -0,0 +1,46 @@ +package org.poolc.api.activity.dto; + +import lombok.Getter; +import org.poolc.api.activity.domain.Activity; + +import java.time.LocalDate; +import java.util.List; +import java.util.stream.Collectors; + +@Getter +public class GetActivitiesResponse { + private final Long id; + private final String title; + private final HostResponse host; + private final LocalDate startDate; + private final boolean available; + private final List tags; + private final Long capacity; + private final boolean isSeminar; + private final Long hour; + private final Long joinedMemberCount; + + public GetActivitiesResponse(Long id, String title, HostResponse host, LocalDate startDate, boolean available, List tags, Long capacity, boolean isSeminar, Long hour, Long joinedMemberCount) { + this.id = id; + this.title = title; + this.host = host; + this.startDate = startDate; + this.available = available; + this.tags = tags; + this.capacity = capacity; + this.isSeminar = isSeminar; + this.hour = hour; + this.joinedMemberCount= joinedMemberCount; + } + + public static GetActivitiesResponse of(Activity activity) { + List tags = activity.getTags().stream() + .map(t -> new TagResponse(t)) + .collect(Collectors.toList()); + HostResponse host = HostResponse.of(activity.getHost()); + return new GetActivitiesResponse(activity.getId(), activity.getTitle(), host, + activity.getStartDate(), activity.getAvailable(), + tags, activity.getCapacity(), activity.getIsSeminar(), activity.getHour(), Long.valueOf(activity.getMemberLoginIDs().size()) + ); + } +} From 878a2f526f04a94cefda629bf1fcd6b42f00bba8 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Mon, 8 Apr 2024 21:58:17 +0900 Subject: [PATCH 08/11] fix:remove not using body data in post --- .../poolc/api/post/dto/GetBoardResponse.java | 4 +- .../poolc/api/post/dto/GetPostsResponse.java | 64 +++++++++++++++++++ .../poolc/api/post/service/PostService.java | 3 +- 3 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/poolc/api/post/dto/GetPostsResponse.java diff --git a/src/main/java/org/poolc/api/post/dto/GetBoardResponse.java b/src/main/java/org/poolc/api/post/dto/GetBoardResponse.java index c93330f0..219ab885 100644 --- a/src/main/java/org/poolc/api/post/dto/GetBoardResponse.java +++ b/src/main/java/org/poolc/api/post/dto/GetBoardResponse.java @@ -8,10 +8,10 @@ @Getter public class GetBoardResponse { private final int maxPage; - private final List posts; + private final List posts; @JsonCreator - public GetBoardResponse(int maxPage, List posts) { + public GetBoardResponse(int maxPage, List posts) { this.maxPage = maxPage; this.posts = posts; } diff --git a/src/main/java/org/poolc/api/post/dto/GetPostsResponse.java b/src/main/java/org/poolc/api/post/dto/GetPostsResponse.java new file mode 100644 index 00000000..faa49cfe --- /dev/null +++ b/src/main/java/org/poolc/api/post/dto/GetPostsResponse.java @@ -0,0 +1,64 @@ +package org.poolc.api.post.dto; + +import lombok.Getter; +import lombok.Setter; +import org.poolc.api.badge.domain.Badge; +import org.poolc.api.comment.dto.CommentResponse; +import org.poolc.api.post.domain.BoardType; +import org.poolc.api.post.domain.JobType; +import org.poolc.api.post.domain.Post; +import org.poolc.api.post.domain.PostType; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +@Getter +@Setter +public class GetPostsResponse { + private Long postId; + private BoardType boardType; + private String writerLoginId; + private String writerName; + private String postProfileImageUrl; + private Badge badge; + private String title; + private String body; + private LocalDateTime createdAt; + private PostType postType; + private Boolean isQuestion; + private Long likeCount; + private Long scrapCount; + private Long commentCount; + private JobType position; + private String region; + private String field; + private LocalDate deadline; + + public static GetPostsResponse of(Post post) { + GetPostsResponse response = new GetPostsResponse(); + + if (post.getIsDeleted()) return null; + if (!post.getAnonymous()) { + response.setWriterName(post.getMember().getName()); + response.setWriterLoginId(post.getMember().getLoginID()); + response.setPostProfileImageUrl(post.getMember().getProfileImageURL()); + response.setBadge(post.getMember().getBadge()); + } + if (post.getPostType() == PostType.GENERAL_POST) response.setIsQuestion(post.getIsQuestion()); + + response.setPostId(post.getId()); + response.setBoardType(post.getBoardType()); + response.setTitle(post.getTitle()); + response.setBody(post.getBody()); + response.setCreatedAt(post.getCreatedAt()); + response.setCommentCount(post.getCommentCount()); + response.setPostType(post.getPostType()); + response.setPosition(post.getPosition()); + response.setRegion(post.getRegion()); + response.setField(post.getField()); + response.setDeadline(post.getDeadline()); + return response; + } +} diff --git a/src/main/java/org/poolc/api/post/service/PostService.java b/src/main/java/org/poolc/api/post/service/PostService.java index 24143938..ec03b838 100644 --- a/src/main/java/org/poolc/api/post/service/PostService.java +++ b/src/main/java/org/poolc/api/post/service/PostService.java @@ -8,6 +8,7 @@ import org.poolc.api.post.domain.BoardType; import org.poolc.api.post.domain.Post; import org.poolc.api.post.dto.GetBoardResponse; +import org.poolc.api.post.dto.GetPostsResponse; import org.poolc.api.post.dto.PostResponse; import org.poolc.api.post.repository.PostRepository; import org.poolc.api.post.vo.PostCreateValues; @@ -61,7 +62,7 @@ public GetBoardResponse findPostsByBoard(Member member, BoardType boardType, int posts.getTotalPages(), posts.stream() //.sorted(Comparator.comparing(Post::getCreatedAt).reversed()) - .map(PostResponse::of) + .map(GetPostsResponse::of) .collect(Collectors.toList())); } From 714667ac74dcaea53923eaa387fe589c82862e7a Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Tue, 9 Apr 2024 21:06:22 +0900 Subject: [PATCH 09/11] fix:add memberloginIds in activity response --- .../poolc/api/activity/dto/GetActivitiesResponse.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java b/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java index e470b4f8..bb490337 100644 --- a/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java +++ b/src/main/java/org/poolc/api/activity/dto/GetActivitiesResponse.java @@ -18,9 +18,9 @@ public class GetActivitiesResponse { private final Long capacity; private final boolean isSeminar; private final Long hour; - private final Long joinedMemberCount; + private final List memberLoginIds; - public GetActivitiesResponse(Long id, String title, HostResponse host, LocalDate startDate, boolean available, List tags, Long capacity, boolean isSeminar, Long hour, Long joinedMemberCount) { + public GetActivitiesResponse(Long id, String title, HostResponse host, LocalDate startDate, boolean available, List tags, Long capacity, boolean isSeminar, Long hour,List memberLoginIds) { this.id = id; this.title = title; this.host = host; @@ -30,8 +30,8 @@ public GetActivitiesResponse(Long id, String title, HostResponse host, LocalDate this.capacity = capacity; this.isSeminar = isSeminar; this.hour = hour; - this.joinedMemberCount= joinedMemberCount; - } + this.memberLoginIds = memberLoginIds; +} public static GetActivitiesResponse of(Activity activity) { List tags = activity.getTags().stream() @@ -40,7 +40,7 @@ public static GetActivitiesResponse of(Activity activity) { HostResponse host = HostResponse.of(activity.getHost()); return new GetActivitiesResponse(activity.getId(), activity.getTitle(), host, activity.getStartDate(), activity.getAvailable(), - tags, activity.getCapacity(), activity.getIsSeminar(), activity.getHour(), Long.valueOf(activity.getMemberLoginIDs().size()) + tags, activity.getCapacity(), activity.getIsSeminar(), activity.getHour(), activity.getMemberLoginIDs() ); } } From 02ba4b6fdefe5015b146b2412a3bc551e9f712e1 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Thu, 11 Apr 2024 23:23:52 +0900 Subject: [PATCH 10/11] feat:add maxPage in getting my posts --- .../poolc/api/post/controller/PostController.java | 2 +- .../java/org/poolc/api/post/service/PostService.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/poolc/api/post/controller/PostController.java b/src/main/java/org/poolc/api/post/controller/PostController.java index 869d6f8d..d6fc830e 100644 --- a/src/main/java/org/poolc/api/post/controller/PostController.java +++ b/src/main/java/org/poolc/api/post/controller/PostController.java @@ -52,7 +52,7 @@ public ResponseEntity viewPostsByBoard(@AuthenticationPrincipa } @GetMapping("/my_posts") - public ResponseEntity> viewMyPosts(@AuthenticationPrincipal Member member, @RequestParam int page) { + public ResponseEntity viewMyPosts(@AuthenticationPrincipal Member member, @RequestParam int page) { return ResponseEntity.status(HttpStatus.OK).body(postService.findPostsByMember(member, page)); } diff --git a/src/main/java/org/poolc/api/post/service/PostService.java b/src/main/java/org/poolc/api/post/service/PostService.java index ec03b838..a2106379 100644 --- a/src/main/java/org/poolc/api/post/service/PostService.java +++ b/src/main/java/org/poolc/api/post/service/PostService.java @@ -42,14 +42,16 @@ public Post findPostById(Member member, Long postId) { } @Transactional(readOnly = true) - public List findPostsByMember(Member member, int page) { + public GetBoardResponse findPostsByMember(Member member, int page) { PageRequest pr = PageRequest.of(page, size,Sort.by("createdAt").descending()); Page posts = postRepository.findByMember(member, pr); if (posts.getNumberOfElements() == 0) return null; - return posts.stream() - //.sorted(Comparator.comparing(Post::getCreatedAt).reversed()) - .map(PostResponse::of) - .collect(Collectors.toList()); + return new GetBoardResponse( + posts.getTotalPages(), + posts.stream() + .map(GetPostsResponse::of) + .collect(Collectors.toList()) + ); } @Transactional(readOnly = true) From 04fd0aecfe77895a17dd261f35b900f51b4635f4 Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Fri, 12 Apr 2024 00:04:44 +0900 Subject: [PATCH 11/11] remove unusing codes --- .../api/file/controller/FileController.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/poolc/api/file/controller/FileController.java b/src/main/java/org/poolc/api/file/controller/FileController.java index 651b62f7..25717bde 100644 --- a/src/main/java/org/poolc/api/file/controller/FileController.java +++ b/src/main/java/org/poolc/api/file/controller/FileController.java @@ -48,7 +48,8 @@ public ResponseEntity sendFile(@PathVariable(name = "fileName") String fileName) @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity uploadFile(@ModelAttribute MultipartFile file) { try { - String fileNameWithOutSpace = RandomStringGenerator()+file.getOriginalFilename().replace(' ', '-'); +// String fileNameWithOutSpace = RandomStringGenerator()+file.getOriginalFilename().replace(' ', '-'); + String fileNameWithOutSpace =file.getOriginalFilename().replace(' ', '-'); Path path = Paths.get(fileDir + fileNameWithOutSpace); if (Files.exists(path)) { return ResponseEntity.badRequest().body("이미 존재하는 파일명입니다. 파일 명을 수정해주세요"); @@ -60,14 +61,14 @@ public ResponseEntity uploadFile(@ModelAttribute MultipartFile file) { } } - private String RandomStringGenerator(){ - String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - StringBuilder salt = new StringBuilder(); - Random rnd = new Random(); - for(int i=0;i<7;i++){ - int index = (int) (rnd.nextFloat() * SALTCHARS.length()); - salt.append(SALTCHARS.charAt(index)); - } - return salt.toString(); - } +// private String RandomStringGenerator(){ +// String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; +// StringBuilder salt = new StringBuilder(); +// Random rnd = new Random(); +// for(int i=0;i<7;i++){ +// int index = (int) (rnd.nextFloat() * SALTCHARS.length()); +// salt.append(SALTCHARS.charAt(index)); +// } +// return salt.toString(); +// } }