-
Notifications
You must be signed in to change notification settings - Fork 0
[Feat] 공고 탐색 및 검색 / 상세 조회 API 구현 #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
+564
−14
Merged
Changes from 13 commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
e9658df
[Feat] #24 dto 작성
sky-0131 f5a3ea7
[Feat] feat/#24 repository
sky-0131 20d5ef3
[Feat] #24 QueryDSL 설정 및 레포지토리 구현 추가
sky-0131 bde24dc
[Feat] #24 JobService, JobPostingConverter에 탐색, 검색, 상세 조회 로직 추가
sky-0131 cf82ee6
[Feat] #24 JobController에 탐색, 검색, 상세 조회 앤드포인트 추가
sky-0131 be4f71b
Merge branch 'develop' into feat/#24
sky-0131 2d8e97b
[Fix] #24 Merge 충돌 해결
sky-0131 b32457e
[Feat] #24 service 수정 및 테스트를 위한 db 자동 연결, 기술 스택 enum 임시 생성
sky-0131 a34779a
[Fix] #24 스킬 태그 검색 조건에 매핑 적용
sky-0131 b26c076
[Fix] #24 page 0 검색 오류 해결
sky-0131 c2d11fa
[Fix] #24 검색, 탐색 오류 수정
sky-0131 b218646
[Fix] #24 API 앤드포인트 경로
sky-0131 950d0c2
[Fix] 공고 상세 조회 Swagger 설명 수정
sky-0131 9d59ae5
[Refactor] #24 공고 조회 API 표준 응답 포맷 적용, SuccessStatus 추가
sky-0131 3f567d8
[Refactor] #24 API 공통 응답 포맷 적용 추가 및 과부하 방지 page 개수 고정
sky-0131 a2ff3e9
[Fix] #24 JobDetailResponse 빌더 내 누락된 필드 매핑 추가
sky-0131 ec93c23
[Fix] #24 URL 매핑 누락, QueryDSL 페이징 정렬, 초기 데이터 적재 예외 처리 해결
sky-0131 71f629f
[Fix] #24 전역 ObjectMapper 오염 방지
sky-0131 5dfcc3c
[Fix] #24 초기 데이터 적재 시, 필수 필드 검증 및 동시 적재 예외처리
sky-0131 c23974d
[Fix] #24 충돌 해결
sky-0131 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 |
|---|---|---|
|
|
@@ -48,3 +48,8 @@ application-prod.yml | |
| ## Claude ## | ||
| .claude/ | ||
| .DS_Store | ||
|
|
||
|
|
||
| ## Python ## | ||
| __pycache__/ | ||
| *.pyc | ||
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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
50 changes: 50 additions & 0 deletions
50
src/main/java/com/leets7th/job_is_be/domain/job/dto/JobDetailResponse.java
This file contains hidden or 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,50 @@ | ||
| package com.leets7th.job_is_be.domain.job.dto; | ||
|
|
||
| import com.leets7th.job_is_be.domain.job.entity.Job; | ||
| import lombok.Builder; | ||
| import java.time.OffsetDateTime; | ||
| import java.util.List; | ||
|
|
||
| @Builder | ||
| public record JobDetailResponse ( | ||
| Long id, | ||
| String companyName, | ||
| String position, | ||
| String careerLevel, | ||
| String employmentType, | ||
| boolean remoteAvailable, | ||
| String sourceUrl, | ||
| OffsetDateTime dueTime, | ||
|
|
||
| String intro, | ||
| String mainTasks, | ||
| String requirements, | ||
| String preferredPoints, | ||
| String benefits, | ||
|
|
||
| Integer employeeCount, | ||
| String companyType, | ||
| String industry, | ||
| String stockStatus, | ||
|
|
||
| List<String> skillTags, | ||
| String locationFull | ||
| ) { | ||
| public static JobDetailResponse from(Job job) { | ||
| return JobDetailResponse.builder() | ||
| .id(job.getId()) | ||
| .companyName(job.getCompany() != null ? job.getCompany().getName() : null) | ||
| .position(job.getTitle()) | ||
| .careerLevel(job.getCareerLevel()) | ||
| .employmentType(job.getEmploymentType()) | ||
| .remoteAvailable(job.isRemoteAvailable()) | ||
| .sourceUrl(job.getSourceUrl()) | ||
| .dueTime(job.getDeadlineAt()) | ||
| .mainTasks(job.getMainTasks()) | ||
| .requirements(job.getRequirements()) | ||
| .preferredPoints(job.getPreferredPoints()) | ||
| .skillTags(job.getSkillTags()) | ||
| .locationFull(job.getLocationFull()) | ||
| .build(); | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| } | ||
| } | ||
21 changes: 21 additions & 0 deletions
21
src/main/java/com/leets7th/job_is_be/domain/job/dto/JobSearchRequest.java
This file contains hidden or 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,21 @@ | ||
| package com.leets7th.job_is_be.domain.job.dto; | ||
|
|
||
| import com.leets7th.job_is_be.domain.job.enums.TechStackType; | ||
| import io.swagger.v3.oas.annotations.media.Schema; | ||
| import lombok.Builder; | ||
|
|
||
| import java.util.List; | ||
|
|
||
| @Builder | ||
| public record JobSearchRequest( | ||
| String keyword, | ||
| String categoryChild, | ||
|
|
||
| @Schema(description = "스킬 태그 목록") | ||
| List<TechStackType> skillTags, | ||
|
|
||
| @Schema(description = "지역 목록", allowableValues = {"서울", "경기", "인천", "부산"}) | ||
| List<String> regions | ||
| // ex) 최신 등록순: createdAt,desc | ||
| // ex) 마감일 임박순 deadlineAt, asc | ||
| ) {} |
37 changes: 37 additions & 0 deletions
37
src/main/java/com/leets7th/job_is_be/domain/job/dto/JobSummaryResponse.java
This file contains hidden or 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,37 @@ | ||
| package com.leets7th.job_is_be.domain.job.dto; | ||
|
|
||
| import com.leets7th.job_is_be.domain.job.entity.Job; | ||
| import com.leets7th.job_is_be.domain.job.enums.TechStackType; | ||
| import lombok.Builder; | ||
| import java.time.OffsetDateTime; | ||
| import java.util.List; | ||
|
|
||
| @Builder | ||
| public record JobSummaryResponse( | ||
| Long id, | ||
| String companyName, | ||
| String position, | ||
| String careerLevel, | ||
| String employmentType, | ||
| boolean remoteAvailable, | ||
| OffsetDateTime dueTime, | ||
| String thumbnailUrl, | ||
| List<String> skillTags | ||
| ) { | ||
| public static JobSummaryResponse from(Job job) { | ||
| // 이미 List<String>이므로 별도 스트림 변환 없이 그대로 할당 가능 | ||
| List<String> tags = job.getSkillTags() != null ? job.getSkillTags() : List.of(); | ||
|
|
||
| return JobSummaryResponse.builder() | ||
| .id(job.getId()) | ||
| .companyName(job.getCompany() != null ? job.getCompany().getName() : null) | ||
| .position(job.getTitle()) | ||
| .careerLevel(job.getCareerLevel()) | ||
| .employmentType(job.getEmploymentType()) | ||
| .remoteAvailable(job.isRemoteAvailable()) | ||
| .dueTime(job.getDeadlineAt()) | ||
| .thumbnailUrl(null) | ||
| .skillTags(tags) | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
| .build(); | ||
| } | ||
| } | ||
12 changes: 12 additions & 0 deletions
12
src/main/java/com/leets7th/job_is_be/domain/job/dto/TechStackResponse.java
This file contains hidden or 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,12 @@ | ||
| package com.leets7th.job_is_be.domain.job.dto; | ||
|
|
||
| import com.leets7th.job_is_be.domain.job.enums.TechStackType; | ||
|
|
||
| public record TechStackResponse( | ||
| String code, | ||
| String name | ||
| ) { | ||
| public static TechStackResponse from(TechStackType type) { | ||
| return new TechStackResponse(type.name(), type.getValue()); | ||
| } | ||
| } |
This file contains hidden or 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 hidden or 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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.