Skip to content

Commit 93aae6d

Browse files
authored
Merge pull request #140 from Pinback-Team/feat/#139
feat: 직무 목록 조회 기능 구현
2 parents a2ba116 + c154404 commit 93aae6d

22 files changed

Lines changed: 141 additions & 19 deletions

File tree

api/src/main/java/com/pinback/api/PinbackApiApplication.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.springframework.scheduling.annotation.EnableAsync;
1010
import org.springframework.scheduling.annotation.EnableScheduling;
1111

12+
import com.pinback.application.config.JobImageConfig;
1213
import com.pinback.application.config.ProfileImageConfig;
1314

1415
@SpringBootApplication(scanBasePackages = {
@@ -22,7 +23,7 @@
2223
@EnableJpaAuditing
2324
@EnableAsync
2425
@EnableScheduling
25-
@EnableConfigurationProperties(ProfileImageConfig.class)
26+
@EnableConfigurationProperties({ProfileImageConfig.class, JobImageConfig.class})
2627
public class PinbackApiApplication {
2728
public static void main(String[] args) {
2829
SpringApplication.run(PinbackApiApplication.class, args);

api/src/main/java/com/pinback/api/config/filter/JwtAuthenticationFilter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ protected boolean shouldNotFilter(HttpServletRequest request) throws ServletExce
103103
path.startsWith("/login/oauth2/code/google") ||
104104
path.startsWith("/api/v2/auth/signup") ||
105105
path.startsWith("/api/v3/auth/signup") ||
106-
path.startsWith("/api/v3/auth/google")
106+
path.startsWith("/api/v3/auth/google") ||
107+
path.startsWith("/api/v3/enums/jobs")
107108
;
108109
}
109110
}

api/src/main/java/com/pinback/api/config/security/SecurityConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
6969
"/login/oauth2/code/google"
7070
).permitAll()
7171

72+
.requestMatchers(
73+
"/api/v3/enums/jobs"
74+
).permitAll()
75+
7276
.anyRequest().authenticated()
7377
)
7478
.formLogin(AbstractHttpConfigurer::disable)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.pinback.api.constant;
2+
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
import com.pinback.application.constant.dto.response.JobsResponse;
8+
import com.pinback.application.constant.port.in.ConstantManagementPort;
9+
import com.pinback.shared.dto.ResponseDto;
10+
11+
import lombok.RequiredArgsConstructor;
12+
13+
@RestController
14+
@RequiredArgsConstructor
15+
@RequestMapping("/api/v3/enums")
16+
public class ConstantController {
17+
private final ConstantManagementPort constantManagementPort;
18+
19+
@GetMapping("/jobs")
20+
public ResponseDto<JobsResponse> getJobs() {
21+
JobsResponse response = constantManagementPort.getJobs();
22+
return ResponseDto.ok(response);
23+
}
24+
25+
}

api/src/main/resources/application.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,11 @@ profile-images:
5353
IMAGE2: ${PROFILE_IMAGE2:}
5454
IMAGE3: ${PROFILE_IMAGE3:}
5555

56-
default-thumbnail: ${DEFAULT_THUMBNAIL:}
56+
default-thumbnail: ${DEFAULT_THUMBNAIL:}
57+
58+
job-images:
59+
images:
60+
plan: ${JOB_IMAGE_PLAN}
61+
design: ${JOB_IMAGE_DESIGN}
62+
frontend: ${JOB_IMAGE_FRONTEND}
63+
backend: ${JOB_IMAGE_BACKEND}

application/src/main/java/com/pinback/application/article/port/out/ArticleGetServicePort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import com.pinback.application.article.dto.SharedArticleDto;
1717
import com.pinback.domain.article.entity.Article;
1818
import com.pinback.domain.category.entity.Category;
19+
import com.pinback.domain.common.enums.Job;
1920
import com.pinback.domain.user.entity.User;
20-
import com.pinback.domain.user.enums.Job;
2121

2222
public interface ArticleGetServicePort {
2323
Optional<Article> findRecentByUser(User user);

application/src/main/java/com/pinback/application/auth/usecase/AuthUsecase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import com.pinback.application.user.port.out.UserUpdateServicePort;
2020
import com.pinback.application.user.port.out.UserValidateServicePort;
2121
import com.pinback.application.user.usecase.UserOAuthUsecase;
22+
import com.pinback.domain.common.enums.Job;
2223
import com.pinback.domain.user.entity.User;
23-
import com.pinback.domain.user.enums.Job;
2424

2525
import lombok.RequiredArgsConstructor;
2626
import lombok.extern.slf4j.Slf4j;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.pinback.application.config;
2+
3+
import java.util.Map;
4+
5+
import org.springframework.boot.context.properties.ConfigurationProperties;
6+
7+
@ConfigurationProperties(prefix = "job-images")
8+
public class JobImageConfig {
9+
private Map<String, String> images;
10+
11+
public String getImageUrl(String key) {
12+
if (images == null)
13+
return null;
14+
return images.get(key.toLowerCase());
15+
}
16+
17+
public Map<String, String> getImages() {
18+
return images;
19+
}
20+
21+
public void setImages(Map<String, String> images) {
22+
this.images = images;
23+
}
24+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.pinback.application.constant.dto.response;
2+
3+
public record JobResponse(
4+
String imageUrl,
5+
String job
6+
) {
7+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.pinback.application.constant.dto.response;
2+
3+
import java.util.List;
4+
5+
public record JobsResponse(
6+
List<JobResponse> jobs
7+
) {
8+
public static JobsResponse of(List<JobResponse> jobs) {
9+
return new JobsResponse(jobs);
10+
}
11+
}

0 commit comments

Comments
 (0)