Skip to content
Open
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
@@ -1,5 +1,6 @@
package com.cnu.real_coding_server.controller;

import org.springframework.web.bind.annotation.RestController;
import com.cnu.real_coding_server.entity.Post;
import com.cnu.real_coding_server.model.request.PostRequest;
import com.cnu.real_coding_server.service.PostService;
Expand All @@ -10,8 +11,8 @@
import java.util.List;

@RestController
@RequestMapping("/posts")
@RequiredArgsConstructor
@RequestMapping("/posts")
public class PostController {
private final PostService postService;

Expand All @@ -31,8 +32,7 @@ public ResponseEntity<Post> getPost(@PathVariable("postId") Integer postId) {
}

@PutMapping("/{postId}")
public ResponseEntity<Post> updatePost(@PathVariable("postId")Integer postId,
@RequestBody PostRequest postRequest) {
public ResponseEntity<Post> updatePost(@PathVariable("postId") Integer postId, @RequestBody PostRequest postRequest) {
return ResponseEntity.ok(postService.updatePost(postId, postRequest).orElse(null));
}

Expand All @@ -42,4 +42,4 @@ public ResponseEntity<Void> deletePost(@PathVariable("postId") Integer postId) {

return ResponseEntity.noContent().build();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.cnu.real_coding_server.controller;

import com.cnu.real_coding_server.entity.Project;
import com.cnu.real_coding_server.model.request.ProjectRequest;
import com.cnu.real_coding_server.service.ProjectService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/projects")
public class ProjectController {
private final ProjectService projectService;

@PostMapping
public ResponseEntity<Project> createProject(@RequestBody ProjectRequest projectRequest) {
return ResponseEntity.ok(projectService.createProject(projectRequest));
}

@GetMapping
public ResponseEntity<List<Project>> getProjects() {
return ResponseEntity.ok(projectService.getProjects());
}

@GetMapping("/{projectId}")
public ResponseEntity<Project> getProject(@PathVariable("projectId") Integer projectId) {
return ResponseEntity.ok(projectService.getProject(projectId).orElse(null));
}

@PutMapping("/{projectId}")
public ResponseEntity<Project> updateProject(@PathVariable("projectId") Integer projectId, @RequestBody ProjectRequest projectRequest) {
return ResponseEntity.ok(projectService.updateProject(projectId, projectRequest).orElse(null));
}

@DeleteMapping("/{projectId}")
public ResponseEntity<Void> deleteProject(@PathVariable("projectId") Integer projectId) {
projectService.deleteProject(projectId);

return ResponseEntity.noContent().build();
}
}
6 changes: 1 addition & 5 deletions src/main/java/com/cnu/real_coding_server/entity/Post.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
package com.cnu.real_coding_server.entity;

import com.cnu.real_coding_server.model.type.Tag;
import jakarta.persistence.*;
import lombok.*;

@Getter
@Entity(name = "posts")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Post extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@Column
@Setter
private String title;

@Column
@Setter
private String contents;
Expand All @@ -30,4 +26,4 @@ public Post(String title, String contents, Tag tag) {
this.contents = contents;
this.tag = tag;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
@Service
@RequiredArgsConstructor
public class PostService {

private final PostRepository postRepository;

public Post createPost(PostRequest postRequest) {
Expand Down Expand Up @@ -41,4 +40,4 @@ public void deletePost(Integer postId) {
postRepository.findById(postId)
.ifPresent(postRepository::delete);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.cnu.real_coding_server.service;

import com.cnu.real_coding_server.entity.Project;
import com.cnu.real_coding_server.model.request.ProjectRequest;
import com.cnu.real_coding_server.repository.ProjectRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
@RequiredArgsConstructor
public class ProjectService {
private final ProjectRepository projectRepository;

public Project createProject(ProjectRequest projectRequest) {
return projectRepository.save(projectRequest.toEntity());
}

public List<Project> getProjects() {
return projectRepository.findAll();
}

public Optional<Project> getProject(Integer projectId) {
return projectRepository.findById(projectId);
}

public Optional<Project> updateProject(Integer projectId, ProjectRequest projectRequest) {
return projectRepository.findById(projectId)
.map(project -> {
project.setTitle(projectRequest.getTitle());
project.setDescription(projectRequest.getDescription());
project.setSummary(projectRequest.getSummary());
project.setStartDate(projectRequest.getStartDate());
project.setEndDate(projectRequest.getEndDate());
project.setIsInProgress(projectRequest.getIsInProgress());
return projectRepository.save(project);
});
}

public void deleteProject(Integer projectId) {
projectRepository.findById(projectId)
.ifPresent(projectRepository::delete);
}
}