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
19 changes: 10 additions & 9 deletions .github/workflows/deployment.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
Expand Down Expand Up @@ -46,10 +47,10 @@ jobs:
- name: Send jar to remote server
uses: appleboy/scp-action@master
with:
host: {나의 public ip}
username: {나의 userName}
host: 34.22.65.56
username: bdqueen3250
source: "real_coding_server-0.0.1-SNAPSHOT.jar"
target: "/home/{나의 userName}"
target: "/home/bdqueen3250"
key: ${{ secrets.PRIVATE_KEY }}

run-app:
Expand All @@ -61,16 +62,16 @@ jobs:
- name: Move deploy.sh
uses: appleboy/scp-action@master
with:
host: {나의 public ip}
username: {나의 userName}
host: 34.22.65.56
username: bdqueen3250
source: "deploy.sh"
target: "/home/{나의 userName}"
target: "/home/bdqueen3250"
key: ${{ secrets.PRIVATE_KEY }}
- name: Execute script
uses: appleboy/ssh-action@master
with:
username: {나의 userName}
host: {나의 public ip}
username: bdqueen3250
host: 34.22.65.56
key: ${{ secrets.PRIVATE_KEY }}
script_stop: true
script: cd /home/{나의 userName} && chmod +x deploy.sh && ./deploy.sh
script: cd /home/bdqueen3250 && chmod +x deploy.sh && ./deploy.sh
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
22 changes: 22 additions & 0 deletions build/resources/main/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
spring:
# H2 Setting Info (H2 Console? ???? ?? ???? ??)
h2:
console:
enabled: true # H2 Console? ???? ?? (H2 Console? H2 Database? UI? ????? ??)
path: /h2-console # H2 Console? Path
# Database Setting Info (Database? H2? ???? ?? H2?? ?? ??)
datasource:
driver-class-name: org.h2.Driver # Database? H2? ?????.
url: jdbc:h2:mem:devblog # H2 ?? ??
username: sa # H2 ?? ? ??? username ?? (??? ??? ??)
password: # H2 ?? ? ??? password ?? (??? ??? ??)

jpa:
hibernate:
ddl-auto: create # ??????? ??? ? ??????? ????? ?? ??? ??
properties:
hibernate:
format_sql: true # ???? query? ???

logging.level:
org.hibernate.SQL: debug
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.util.List;

@RestController
@RequestMapping("/posts")
@RequestMapping({"/posts"})
@RequiredArgsConstructor
public class PostController {
private final PostService postService;
Expand All @@ -24,7 +24,6 @@ public ResponseEntity<Post> createPost(@RequestBody PostRequest postRequest) {
public ResponseEntity<List<Post>> getPosts() {
return ResponseEntity.ok(postService.getPosts());
}

@GetMapping("/{postId}")
public ResponseEntity<Post> getPost(@PathVariable("postId") Integer postId) {
return ResponseEntity.ok(postService.getPost(postId).orElse(null));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
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
@RequestMapping({ "/projects"})
@RequiredArgsConstructor
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 postId) {
return ResponseEntity.ok(projectService.getProject(postId).orElse(null));
}

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

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

return ResponseEntity.noContent().build();
}

}
37 changes: 8 additions & 29 deletions src/main/java/com/cnu/real_coding_server/entity/Project.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.cnu.real_coding_server.entity;

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

import java.time.LocalDateTime;

@Getter
@Entity(name = "projects")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand All @@ -19,36 +18,16 @@ public class Project extends BaseEntity {

@Column
@Setter
private String summary;

@Column
@Setter
private String description;
private String contents;

@Column
@Setter
private LocalDateTime startDate;

@Column
@Setter
private LocalDateTime endDate;

@Column
@Setter
private Boolean isInProgress;
@Enumerated(EnumType.STRING)
private Tag tag;

@Builder
private Project(String title,
String summary,
String description,
LocalDateTime startDate,
LocalDateTime endDate,
Boolean isInProgress) {
public Project(String title, String contents, Tag tag) {
this.title = title;
this.summary = summary;
this.description = description;
this.startDate = startDate;
this.endDate = endDate;
this.isInProgress = isInProgress;
this.contents = contents;
this.tag = tag;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,32 +1,23 @@
package com.cnu.real_coding_server.model.request;

import com.cnu.real_coding_server.entity.Project;
import lombok.Getter;

import java.time.LocalDateTime;

@Getter
public class ProjectRequest {
private String title;

private String summary;

private String description;

private LocalDateTime startDate;

private LocalDateTime endDate;

private Boolean isInProgress;

public Project toEntity() {
return Project.builder()
.title(title)
.summary(summary)
.description(description)
.startDate(startDate)
.endDate(endDate)
.isInProgress(isInProgress)
.build();
}
}
package com.cnu.real_coding_server.model.request;

import com.cnu.real_coding_server.entity.Project;
import com.cnu.real_coding_server.model.type.Tag;
import jakarta.validation.Valid;
import lombok.Getter;

@Getter
public class ProjectRequest {
@Valid
private String title;
private String contents;

private Tag tag;

public Project toEntity() {
return Project.builder()
.title(title)
.contents(contents)
.tag(tag)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.cnu.real_coding_server.repository;

import com.cnu.real_coding_server.entity.Project;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProjectRepository extends JpaRepository<Project, Integer> {
// Project save(Project post);
// List<Project> findAll();
// Optional<Project> findById(Integer projectId);
// void delete(Project projectId);
}
package com.cnu.real_coding_server.repository;

import com.cnu.real_coding_server.entity.Project;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProjectRepository extends JpaRepository<Project, Integer> {
// Project save(Project post);
// List<Project> findAll();
// Optional<Project> findById(Integer projectId);
// void delete(Project projectId);
}

Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,22 @@ public class PostService {

private final PostRepository postRepository;


public Post createPost(PostRequest postRequest) {
return postRepository.save(postRequest.toEntity());
}


public List<Post> getPosts() {
return postRepository.findAll();
}


public Optional<Post> getPost(Integer postId) {
return postRepository.findById(postId);
}


public Optional<Post> updatePost(Integer postId, PostRequest postRequest) {
return postRepository.findById(postId)
.map(post -> {
Expand All @@ -37,8 +41,10 @@ public Optional<Post> updatePost(Integer postId, PostRequest postRequest) {
});
}


public void deletePost(Integer postId) {
postRepository.findById(postId)
.ifPresent(postRepository::delete);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.cnu.real_coding_server.service;

import com.cnu.real_coding_server.entity.Post;
import com.cnu.real_coding_server.entity.Project;
import com.cnu.real_coding_server.model.request.ProjectRequest;
import com.cnu.real_coding_server.repository.PostRepository;
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 postId) {
return projectRepository.findById(postId);
}
public Optional<Project> updateProject(Integer postId, ProjectRequest projectRequest) {
return projectRepository.findById(postId)
.map(post -> {
post.setTitle(projectRequest.getTitle());
post.setContents(projectRequest.getContents());
post.setTag(projectRequest.getTag());
return projectRepository.save(post);
});
}
public void deleteProject(Integer postId) {
projectRepository.findById(postId)
.ifPresent(projectRepository::delete);
}

}