From ec716e23ea8d827d4401ced8f34d533e30209d55 Mon Sep 17 00:00:00 2001 From: Kostya Date: Fri, 14 Aug 2026 13:29:40 +0000 Subject: Move mapper/provider infra into v1 packages, add repository write methods Correct Mapper's generic parameter order to and stub addEvent/addUser on the Event/User repositories. --- .../infrastructure/mapper/EventMapperV1.java | 52 ------------------- .../service/infrastructure/mapper/Mapper.java | 2 +- .../infrastructure/mapper/v1/EventMapperV1.java | 53 +++++++++++++++++++ .../service/infrastructure/provider/XMLLoader.java | 13 ----- .../infrastructure/provider/v1/XMLLoader.java | 60 ++++++++++++++++++++++ .../guess/service/repository/EventRepository.java | 2 + .../repository/InMemoryEventRepository.java | 6 +++ .../service/repository/InMemoryUserRepository.java | 8 ++- .../guess/service/repository/UserRepository.java | 3 ++ 9 files changed, 132 insertions(+), 67 deletions(-) delete mode 100644 service/src/main/java/market/guess/service/infrastructure/mapper/EventMapperV1.java create mode 100644 service/src/main/java/market/guess/service/infrastructure/mapper/v1/EventMapperV1.java delete mode 100644 service/src/main/java/market/guess/service/infrastructure/provider/XMLLoader.java create mode 100644 service/src/main/java/market/guess/service/infrastructure/provider/v1/XMLLoader.java (limited to 'service/src') diff --git a/service/src/main/java/market/guess/service/infrastructure/mapper/EventMapperV1.java b/service/src/main/java/market/guess/service/infrastructure/mapper/EventMapperV1.java deleted file mode 100644 index 33c38e3..0000000 --- a/service/src/main/java/market/guess/service/infrastructure/mapper/EventMapperV1.java +++ /dev/null @@ -1,52 +0,0 @@ -package market.guess.service.infrastructure.mapper; - -import java.util.ArrayList; -import java.util.List; -import market.guess.api.CommissionTiming; -import market.guess.api.EventStatus; -import market.guess.service.domain.Event; -import market.guess.service.domain.Option; -import market.guess.service.mechanism.LmsrTradingMechanism; -import market.guess.service.model.v1.GMEvent; - -public final class EventMapperV1 implements Mapper { - - @Override - public Event toDomain(GMEvent source) { - return new Event( - getEventKey(source), - source.getId(), - joinName(source.getName()), - source.getDescription(), - source.getComision().getValue(), - getTiming(source.getComision().getType()), - new LmsrTradingMechanism(source.getGMMethod().getGMLMSR().getB()), - EventStatus.ACTIVE, - getOptions(source), - ""); - } - - private static String getEventKey(GMEvent event) { - return String.valueOf(event.getId()); - } - - private static String joinName(List tokens) { - return tokens == null ? "" : String.join(" ", tokens); - } - - private static CommissionTiming getTiming(String type) throws IllegalArgumentException { - return switch (type) { - case "on-close" -> CommissionTiming.ON_CLOSE; - case "on-purchase" -> CommissionTiming.ON_PURCHASE; - default -> throw new IllegalArgumentException("Unknown comision type: " + type); - }; - } - - private static List