Skip to content

Commit 3be39c6

Browse files
authored
✨ feat: 인장 검색 API 추가 (#51)
1 parent 742f6fa commit 3be39c6

File tree

5 files changed

+44
-3
lines changed

5 files changed

+44
-3
lines changed

app-maple-stamp-api/src/main/java/com/mapletrend/appmaplestampapi/config/WebConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ public class WebConfig implements WebMvcConfigurer {
99
@Override
1010
public void addCorsMappings(org.springframework.web.servlet.config.annotation.CorsRegistry registry) {
1111
registry.addMapping("/**")
12-
.allowedOrigins("http://localhost:3003", "https://maplestory.nexon.com", "https://www.mapletrend.co.kr")
13-
.allowedMethods("POST")
12+
.allowedOrigins("http://localhost:3003", "https://www.mapletrend.co.kr")
13+
.allowedMethods("GET", "POST")
1414
.allowCredentials(true);
1515
}
1616
}

app-maple-stamp-api/src/main/java/com/mapletrend/appmaplestampapi/controller/StampController.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.mapletrend.appmaplestampapi.service.UnionRankingService;
99
import com.mapletrend.appmaplestampapi.service.dto.request.StampRequest;
1010
import com.mapletrend.appmaplestampapi.service.dto.response.ApiResponse;
11+
import com.mapletrend.appmaplestampapi.service.dto.response.StampImageResponse;
1112
import com.mapletrend.maplestampdomainmariadb.repository.StampRepository;
1213
import com.mapletrend.nexonopenapicore.dto.response.BasicResponse;
1314
import com.mapletrend.nexonopenapicore.dto.response.FinalStatResponse;
@@ -26,6 +27,8 @@
2627
import lombok.extern.log4j.Log4j2;
2728
import org.json.simple.JSONObject;
2829
import org.springframework.http.HttpStatus;
30+
import org.springframework.web.bind.annotation.GetMapping;
31+
import org.springframework.web.bind.annotation.PathVariable;
2932
import org.springframework.web.bind.annotation.PostMapping;
3033
import org.springframework.web.bind.annotation.RequestBody;
3134
import org.springframework.web.bind.annotation.RequestMapping;
@@ -193,4 +196,25 @@ private String formatBattlePower(String battlePower) {
193196
private String formatUnionLevel(long unionLevel) {
194197
return (unionLevel / 500 * 500) + "+";
195198
}
199+
200+
@GetMapping("/stamp/{invenNickname}")
201+
@Timed(value = "findStampByInvenNickname")
202+
public ApiResponse<StampImageResponse> findStampByInvenNickname(
203+
@PathVariable("invenNickname") String invenNickname
204+
) {
205+
byte[] stampImage = stampService.getStampImage(invenNickname);
206+
if (stampImage.length == 0) {
207+
return ApiResponse.<StampImageResponse>fail(
208+
HttpStatus.NOT_FOUND.value(),
209+
"스탬프 조회 실패"
210+
);
211+
}
212+
213+
return ApiResponse.<StampImageResponse>success(
214+
"스탬프 조회 성공",
215+
StampImageResponse.builder()
216+
.stampImage(stampImage)
217+
.build()
218+
);
219+
}
196220
}

app-maple-stamp-api/src/main/java/com/mapletrend/appmaplestampapi/service/StampService.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import lombok.extern.log4j.Log4j2;
1717
import org.json.simple.JSONObject;
1818
import org.springframework.stereotype.Service;
19+
import org.springframework.transaction.annotation.Transactional;
1920

2021
@Service
2122
@RequiredArgsConstructor
@@ -24,6 +25,7 @@ public class StampService {
2425

2526
private final StampRepository stampRepository;
2627

28+
@Transactional
2729
public byte[] createStampImage(JSONObject jsonObject) {
2830

2931
String invenNickname = (String) jsonObject.get("invenNickname");
@@ -147,5 +149,14 @@ public byte[] createStampImage(JSONObject jsonObject) {
147149
}
148150
return new byte[0];
149151
}
152+
153+
@Transactional(readOnly = true)
154+
public byte[] getStampImage(String invenNickname) {
155+
Optional<Stamp> stamp = stampRepository.findByInvenNickname(invenNickname);
156+
if (stamp.isPresent()) {
157+
return stamp.get().getStampImage();
158+
}
159+
return new byte[0];
160+
}
150161
}
151162

Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package com.mapletrend.appmaplestampapi.service.dto.response;
22

3+
import lombok.Builder;
34
import lombok.Getter;
45
import lombok.RequiredArgsConstructor;
56

67
@RequiredArgsConstructor
8+
@Builder
79
@Getter
8-
public class StampResponse {
10+
public class StampImageResponse {
11+
12+
private final byte[] stampImage;
913
}

maple-stamp-domain-mariadb/src/main/java/com/mapletrend/maplestampdomainmariadb/repository/StampRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public interface StampRepository extends JpaRepository<Stamp, Long> {
88

99
Optional<Stamp> findByUuid(String uuid);
1010

11+
Optional<Stamp> findByInvenNickname(String invenNickname);
12+
1113
Optional<Stamp> findByNexonApiKeyAndInvenNicknameAndCharacterName(String apiKey, String invenNickname,
1214
String characterName);
1315
}

0 commit comments

Comments
 (0)