Skip to content

Commit

Permalink
Merge pull request #1 from PoolC/dev
Browse files Browse the repository at this point in the history
production
  • Loading branch information
jimmy0006 authored Apr 11, 2024
2 parents 03ffda3 + 04fd0ae commit b2f7d05
Show file tree
Hide file tree
Showing 9 changed files with 142 additions and 14 deletions.
1 change: 1 addition & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,4 @@ jobs:
# cd dockercompose/palkia
# docker compose down
# docker compose up -d --build

Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,18 @@ public class ActivityController {
private final SessionService sessionService;

@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, List<ActivityResponse>>> findActivities(@RequestParam Optional<String> when) {
Map<String, List<ActivityResponse>> result = new HashMap<>();
public ResponseEntity<Map<String, List<GetActivitiesResponse>>> findActivities(@RequestParam Optional<String> when) {
Map<String, List<GetActivitiesResponse>> 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()));
}
);
Expand Down
Original file line number Diff line number Diff line change
@@ -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<TagResponse> tags;
private final Long capacity;
private final boolean isSeminar;
private final Long hour;
private final List<String> memberLoginIds;

public GetActivitiesResponse(Long id, String title, HostResponse host, LocalDate startDate, boolean available, List<TagResponse> tags, Long capacity, boolean isSeminar, Long hour,List<String> memberLoginIds) {
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.memberLoginIds = memberLoginIds;
}

public static GetActivitiesResponse of(Activity activity) {
List<TagResponse> 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(), activity.getMemberLoginIDs()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/org/poolc/api/file/controller/FileController.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -47,7 +48,8 @@ public ResponseEntity sendFile(@PathVariable(name = "fileName") String fileName)
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> uploadFile(@ModelAttribute MultipartFile file) {
try {
String fileNameWithOutSpace = 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("이미 존재하는 파일명입니다. 파일 명을 수정해주세요");
Expand All @@ -58,4 +60,15 @@ public ResponseEntity<String> 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();
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public ResponseEntity<GetBoardResponse> viewPostsByBoard(@AuthenticationPrincipa
}

@GetMapping("/my_posts")
public ResponseEntity<List<PostResponse>> viewMyPosts(@AuthenticationPrincipal Member member, @RequestParam int page) {
public ResponseEntity<GetBoardResponse> viewMyPosts(@AuthenticationPrincipal Member member, @RequestParam int page) {
return ResponseEntity.status(HttpStatus.OK).body(postService.findPostsByMember(member, page));
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/poolc/api/post/dto/GetBoardResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
@Getter
public class GetBoardResponse {
private final int maxPage;
private final List<PostResponse> posts;
private final List<GetPostsResponse> posts;

@JsonCreator
public GetBoardResponse(int maxPage, List<PostResponse> posts) {
public GetBoardResponse(int maxPage, List<GetPostsResponse> posts) {
this.maxPage = maxPage;
this.posts = posts;
}
Expand Down
64 changes: 64 additions & 0 deletions src/main/java/org/poolc/api/post/dto/GetPostsResponse.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
15 changes: 9 additions & 6 deletions src/main/java/org/poolc/api/post/service/PostService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -41,14 +42,16 @@ public Post findPostById(Member member, Long postId) {
}

@Transactional(readOnly = true)
public List<PostResponse> findPostsByMember(Member member, int page) {
public GetBoardResponse findPostsByMember(Member member, int page) {
PageRequest pr = PageRequest.of(page, size,Sort.by("createdAt").descending());
Page<Post> 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)
Expand All @@ -61,7 +64,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()));
}

Expand Down

0 comments on commit b2f7d05

Please sign in to comment.