refactor: UseCase 인터페이스 내 DTO 분리 및 강결합 제거
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.smp.usecase;
|
package io.shinhanlife.dap.mcc.biz.smp.usecase;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.*;
|
|
||||||
|
|
||||||
public interface DailyQuoteToolUseCase {
|
public interface DailyQuoteToolUseCase {
|
||||||
io.shinhanlife.dap.mcc.biz.smp.usecase.impl.DailyQuoteToolUseCaseImpl.DailyQuoteResponse execute(io.shinhanlife.dap.mcc.biz.smp.usecase.impl.DailyQuoteToolUseCaseImpl.DailyQuoteRequest req);
|
record DailyQuoteRequest(String category) {}
|
||||||
|
record DailyQuoteResponse(String quote, String author) {}
|
||||||
|
|
||||||
|
DailyQuoteResponse execute(DailyQuoteRequest req);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.smp.usecase;
|
package io.shinhanlife.dap.mcc.biz.smp.usecase;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.*;
|
|
||||||
|
|
||||||
public interface ExchangeRateToolUseCase {
|
public interface ExchangeRateToolUseCase {
|
||||||
io.shinhanlife.dap.mcc.biz.smp.usecase.impl.ExchangeRateToolUseCaseImpl.ExchangeRateResponse execute(io.shinhanlife.dap.mcc.biz.smp.usecase.impl.ExchangeRateToolUseCaseImpl.ExchangeRateRequest req);
|
record ExchangeRateRequest(String currencyCode) {}
|
||||||
|
record ExchangeRateResponse(String baseCurrency, String targetCurrency, double rate) {}
|
||||||
|
|
||||||
|
ExchangeRateResponse execute(ExchangeRateRequest req);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,6 @@ import java.util.Random;
|
|||||||
)
|
)
|
||||||
public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolUseCase implements DailyQuoteToolUseCase {
|
public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolUseCase implements DailyQuoteToolUseCase {
|
||||||
|
|
||||||
public record DailyQuoteRequest(String category) {}
|
|
||||||
public record DailyQuoteResponse(String quote, String author) {}
|
|
||||||
|
|
||||||
private final List<DailyQuoteResponse> quotes = List.of(
|
private final List<DailyQuoteResponse> quotes = List.of(
|
||||||
new DailyQuoteResponse("성공은 매일 반복한 작은 노력들의 합이다.", "로버트 콜리어"),
|
new DailyQuoteResponse("성공은 매일 반복한 작은 노력들의 합이다.", "로버트 콜리어"),
|
||||||
new DailyQuoteResponse("시작이 반이다.", "아리스토텔레스"),
|
new DailyQuoteResponse("시작이 반이다.", "아리스토텔레스"),
|
||||||
@@ -42,6 +39,7 @@ public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolUseCase implements
|
|||||||
new DailyQuoteResponse("가장 큰 위험은 위험 없는 삶이다.", "스티븐 코비")
|
new DailyQuoteResponse("가장 큰 위험은 위험 없는 삶이다.", "스티븐 코비")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@Override
|
||||||
@McpFunction(register = false, displayName = "랜덤 명언 툴", name = "daily_quote",
|
@McpFunction(register = false, displayName = "랜덤 명언 툴", name = "daily_quote",
|
||||||
description = "무작위로 영감을 주는 명언을 하나 가져옵니다.",
|
description = "무작위로 영감을 주는 명언을 하나 가져옵니다.",
|
||||||
prompt = "오늘의 명언 하나 알려줘, 동기부여 명언 등",
|
prompt = "오늘의 명언 하나 알려줘, 동기부여 명언 등",
|
||||||
|
|||||||
@@ -30,15 +30,13 @@ import org.springframework.web.client.RestClient;
|
|||||||
)
|
)
|
||||||
public class ExchangeRateToolUseCaseImpl extends AbstractMcpToolUseCase implements ExchangeRateToolUseCase {
|
public class ExchangeRateToolUseCaseImpl extends AbstractMcpToolUseCase implements ExchangeRateToolUseCase {
|
||||||
|
|
||||||
public record ExchangeRateRequest(String currencyCode) {}
|
|
||||||
public record ExchangeRateResponse(String baseCurrency, String targetCurrency, double rate) {}
|
|
||||||
|
|
||||||
private final RestClient restClient;
|
private final RestClient restClient;
|
||||||
|
|
||||||
public ExchangeRateToolUseCaseImpl() {
|
public ExchangeRateToolUseCaseImpl() {
|
||||||
this.restClient = RestClient.create();
|
this.restClient = RestClient.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@McpFunction(register = false, displayName = "실시간 환율 조회 툴", name = "exchange_rate",
|
@McpFunction(register = false, displayName = "실시간 환율 조회 툴", name = "exchange_rate",
|
||||||
description = "원하는 통화의 실시간 환율을 조회합니다. (예: USD, EUR, JPY)",
|
description = "원하는 통화의 실시간 환율을 조회합니다. (예: USD, EUR, JPY)",
|
||||||
prompt = "현재 달러 환율 알려줘, 엔화 환율은?",
|
prompt = "현재 달러 환율 알려줘, 엔화 환율은?",
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||||
import org.springframework.cache.annotation.EnableCaching;
|
import org.springframework.cache.annotation.EnableCaching;
|
||||||
|
|
||||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration", "io.shinhanlife.dap.other"})
|
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"})
|
||||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration", "io.shinhanlife.dap.other"})
|
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"})
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
public class DapToolOthApplication {
|
public class DapToolOthApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
Reference in New Issue
Block a user