-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #881 from peer-42seoul/880-feat-모집공고-목록-및-단건-조회
feat:add-getJob-getJobList
- Loading branch information
Showing
7 changed files
with
111 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
src/main/java/peer/backend/controller/board/JobController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package peer.backend.controller.board; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.data.domain.Page; | ||
import org.springframework.web.bind.annotation.*; | ||
import peer.backend.dto.board.Job.JobListResponse; | ||
import peer.backend.dto.board.Job.JobResponse; | ||
import peer.backend.service.board.Job.JobService; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("/api/v1/job") | ||
@Slf4j | ||
public class JobController { | ||
|
||
private final JobService jobService; | ||
@GetMapping("") | ||
public Page<JobListResponse> getJobList(@RequestParam int page, @RequestParam int pageSize){ | ||
return jobService.getJobList(page, pageSize); | ||
} | ||
|
||
@GetMapping("/{jobId}") | ||
public JobResponse getJob(@PathVariable Long jobId){ | ||
return jobService.getJob(jobId); | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
src/main/java/peer/backend/dto/board/Job/JobListResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package peer.backend.dto.board.Job; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.RequiredArgsConstructor; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@AllArgsConstructor | ||
@Builder | ||
public class JobListResponse { | ||
String title; | ||
String createdAt; | ||
String writerName; | ||
Long id; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package peer.backend.dto.board.Job; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.RequiredArgsConstructor; | ||
|
||
import javax.swing.border.TitledBorder; | ||
|
||
@Getter | ||
@RequiredArgsConstructor | ||
@AllArgsConstructor | ||
public class JobResponse { | ||
String title; | ||
String writerName; | ||
String createdAt; | ||
String content; | ||
Long id; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
src/main/java/peer/backend/service/board/Job/JobService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package peer.backend.service.board.Job; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.data.domain.Page; | ||
import org.springframework.data.domain.PageRequest; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.stereotype.Service; | ||
import peer.backend.dto.board.Job.JobListResponse; | ||
import peer.backend.dto.board.Job.JobResponse; | ||
import peer.backend.entity.board.team.Post; | ||
import peer.backend.entity.board.team.enums.BoardType; | ||
import peer.backend.exception.NotFoundException; | ||
import peer.backend.repository.board.team.PostRepository; | ||
|
||
import java.util.Optional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
public class JobService { | ||
|
||
private final PostRepository postRepository; | ||
public Page<JobListResponse> getJobList(int page, int pageSize){ | ||
Pageable pageable = PageRequest.of(page - 1, pageSize); | ||
Page<Post> result = postRepository.findAllByBoardType(BoardType.JOB, pageable); | ||
|
||
return result.map(post -> | ||
new JobListResponse(post.getTitle(), | ||
post.getCreatedAt().toString(), | ||
post.getUser().getNickname(), | ||
post.getId())); | ||
} | ||
|
||
public JobResponse getJob(Long jobId){ | ||
Post job = postRepository.findById(jobId) | ||
.orElseThrow(() -> new NotFoundException("Not Found")); | ||
return new JobResponse(job.getTitle(), | ||
job.getUser().getNickname(), | ||
job.getContent(), | ||
job.getCreatedAt().toString(), | ||
job.getId()); | ||
} | ||
} |