-package de.juplo.kafka.chat.backend.persistence.filestorage;
+package de.juplo.kafka.chat.backend.persistence.storage.files;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JavaType;
@RequiredArgsConstructor
@Slf4j
-public class FileStorageStrategy implements StorageStrategy
+public class FilesStorageStrategy implements StorageStrategy
{
public static final String CHATROOMS_FILENAME = "chatrooms.json";
@Override
- public void writeChatrooms(Flux<ChatRoom> chatroomFlux)
+ public void write(Flux<ChatRoom> chatroomFlux)
{
Path path = chatroomsPath();
log.info("Writing chatrooms to {}", path);
}
@Override
- public Flux<ChatRoom> readChatrooms()
+ public Flux<ChatRoom> read()
{
JavaType type = mapper.getTypeFactory().constructType(ChatRoomTo.class);
return Flux
.from(new JsonFilePublisher<ChatRoomTo>(chatroomsPath(), mapper, type))
.log()
.map(chatRoomTo -> new ChatRoom(
- chatRoomTo.getId(),
- chatRoomTo.getName(),
- clock,
- factory.create(readMessages(chatRoomTo)),
- bufferSize));
+ chatRoomTo.getId(),
+ chatRoomTo.getName(),
+ clock,
+ factory.create(readMessages(chatRoomTo)),
+ bufferSize));
}
- @Override
public void writeMessages(ChatRoomTo chatroomTo, Flux<Message> messageFlux)
{
Path path = chatroomPath(chatroomTo);
}
}
- @Override
public Flux<Message> readMessages(ChatRoomTo chatroomTo)
{
JavaType type = mapper.getTypeFactory().constructType(MessageTo.class);