Skip to content

Commit 4247077

Browse files
authored
Merge pull request #23 from prgrms-web-devcourse-final-project/feat#10
Feat#10 게시글 도메인 작성
2 parents a063cfa + 416b68b commit 4247077

23 files changed

+562
-10
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ CLAUDE.md
4242
db_dev.mv.db
4343
db_dev.trace.db
4444

45+
4546
cookies.txt
47+
48+
.DS_Store
49+

back/.env.default

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
CUSTOM__JWT__SECRET_KEY=NEED_TO_SET
1+
CUSTOM__JWT__SECRET_KEY=abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789

back/src/main/java/com/back/domain/member/member/repository/MemberRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import java.util.Optional;
77

8-
public interface MemberRepository extends JpaRepository<Member, Integer> {
8+
public interface MemberRepository extends JpaRepository<Member, Long> {
99
Optional<Member> findByEmail(String email);
1010

1111
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.back.domain.post.controller;
2+
3+
import com.back.domain.member.member.entity.Member;
4+
import com.back.domain.post.dto.PostAllResponse;
5+
import com.back.domain.post.dto.PostCreateRequest;
6+
import com.back.domain.post.dto.PostCreateResponse;
7+
import com.back.domain.post.dto.PostSingleResponse;
8+
import com.back.domain.post.entity.Post;
9+
import com.back.domain.post.rq.ApiResponse;
10+
import com.back.domain.post.service.PostService;
11+
import com.back.global.auth.CurrentUser;
12+
import io.swagger.v3.oas.annotations.Operation;
13+
import lombok.RequiredArgsConstructor;
14+
import org.springframework.http.ResponseEntity;
15+
import org.springframework.web.bind.annotation.*;
16+
17+
import java.util.List;
18+
19+
@RestController
20+
@RequestMapping("post/infor")
21+
@RequiredArgsConstructor
22+
public class InformationPostController {
23+
private final PostService postService;
24+
25+
26+
@Operation(summary = "게시글 생성")
27+
@PostMapping
28+
public ResponseEntity<ApiResponse<PostCreateResponse>> createPost(
29+
@RequestBody PostCreateRequest postCreateRequest,
30+
@CurrentUser Member member
31+
) {
32+
String authorName = member.getName();
33+
Post post = postService.createPost(postCreateRequest, authorName);
34+
PostCreateResponse postCreateResponse = PostCreateResponse.from(post);
35+
ApiResponse<PostCreateResponse> response = new ApiResponse<>("게시글이 성공적으로 생성되었습니다. " , postCreateResponse);
36+
return ResponseEntity.ok(response);
37+
}
38+
39+
@Operation(summary = "게시글 다건 조회")
40+
@GetMapping
41+
public ResponseEntity<ApiResponse<List<PostAllResponse>>> getAllPost() {
42+
List<PostAllResponse> postAllResponse = postService.getAllPostResponse();
43+
44+
45+
ApiResponse<List<PostAllResponse>> response = new ApiResponse<>("게시글 다건 조회 성공", postAllResponse);
46+
return ResponseEntity.ok(response);
47+
}
48+
49+
@Operation(summary = "게시글 단건 조회")
50+
@GetMapping("/{post_id}")
51+
public ResponseEntity<ApiResponse<PostSingleResponse>> getSinglePost(@PathVariable long post_id) {
52+
Post post = postService.findById(post_id);
53+
54+
PostSingleResponse postSingleResponse = new PostSingleResponse(post);
55+
56+
ApiResponse<PostSingleResponse> response = new ApiResponse<>("게시글 단건 조회 성공", postSingleResponse);
57+
return ResponseEntity.ok(response);
58+
}
59+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.back.domain.post.dto;
2+
3+
import com.back.domain.post.entity.Post;
4+
import lombok.Data;
5+
6+
import java.time.LocalDateTime;
7+
8+
@Data
9+
public class PostAllResponse {
10+
private Long id;
11+
private String title;
12+
private String authorName;
13+
private LocalDateTime createdAt;
14+
private int viewCount;
15+
private int like;
16+
17+
public PostAllResponse(Post post) {
18+
this.id = post.getId();
19+
this.title = post.getTitle();
20+
this.authorName = post.getAuthorName();
21+
this.createdAt = post.getCreateDate();
22+
this.viewCount = post.getViewCount();
23+
this.like = post.getLiked();
24+
}
25+
26+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.back.domain.post.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class PostCreateRequest {
7+
private Long memberId;
8+
private String postType;
9+
private String title;
10+
private String content;
11+
12+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.back.domain.post.dto;
2+
3+
import com.back.domain.post.entity.Post;
4+
import lombok.Data;
5+
6+
@Data
7+
public class PostCreateResponse {
8+
private Long postId;
9+
private String title;
10+
11+
public static PostCreateResponse from(Post post) {
12+
PostCreateResponse response = new PostCreateResponse();
13+
response.setPostId(post.getId());
14+
response.setTitle(post.getTitle());
15+
return response;
16+
}
17+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.back.domain.post.dto;
2+
3+
import com.back.domain.post.entity.Post;
4+
import lombok.Data;
5+
6+
import java.time.LocalDateTime;
7+
8+
@Data
9+
public class PostSingleResponse {
10+
private Long id;
11+
private String title;
12+
private String authorName;
13+
private LocalDateTime createdAt;
14+
private int viewCount;
15+
private int like;
16+
17+
public PostSingleResponse(Post post) {
18+
this.id = post.getId();
19+
this.title = post.getTitle();
20+
this.authorName = post.getAuthorName();
21+
this.createdAt = post.getCreateDate();
22+
this.viewCount = post.getViewCount();
23+
this.like = post.getLiked();
24+
}
25+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.back.domain.post.entity;
2+
3+
import com.back.global.jpa.BaseEntity;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.EnumType;
6+
import jakarta.persistence.Enumerated;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
9+
import lombok.Setter;
10+
11+
@Entity
12+
@NoArgsConstructor
13+
@Getter
14+
@Setter
15+
public class Post extends BaseEntity {
16+
private String title;
17+
private String content;
18+
private String authorName;
19+
20+
@Enumerated(EnumType.STRING)
21+
private PostType postType;
22+
23+
public enum PostType {
24+
INFORMATIONPOST,
25+
PRACTICEPOST,
26+
QUESTIONPOST
27+
}
28+
29+
private int viewCount;
30+
31+
private int liked;
32+
33+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.back.domain.post.entity;
2+
3+
import jakarta.persistence.Entity;
4+
import lombok.NoArgsConstructor;
5+
6+
@Entity
7+
@NoArgsConstructor
8+
public class PracticePost extends Post{
9+
private Boolean isMento;
10+
private String carrer;
11+
}

0 commit comments

Comments
 (0)