1 package de.juplo.kafka.payment.transfer.persistence;
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import de.juplo.kafka.payment.transfer.domain.Transfer;
6 import de.juplo.kafka.payment.transfer.ports.TransferRepository;
7 import lombok.RequiredArgsConstructor;
8 import lombok.extern.slf4j.Slf4j;
9 import org.springframework.stereotype.Component;
11 import java.util.HashMap;
13 import java.util.Optional;
17 @RequiredArgsConstructor
19 public class InMemoryTransferRepository implements TransferRepository
21 private final Map<Long, String> map = new HashMap<>();
22 private final ObjectMapper mapper;
26 public void store(Transfer transfer)
30 map.put(transfer.getId(), mapper.writeValueAsString(transfer));
32 catch (JsonProcessingException e)
34 throw new RuntimeException(e);
39 public Optional<Transfer> get(Long id)
43 .ofNullable(map.get(id))
47 return mapper.readValue(json, Transfer.class);
49 catch (JsonProcessingException e)
51 throw new RuntimeException("Could not convert JSON: " + json, e);
57 public void remove(Long id)