Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/repository/IMessageRepository.java

85 lines
2.6 KiB
Java

package org.mercury_im.messenger.persistence.room.repository;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.persistence.repository.MessageRepository;
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
import org.mercury_im.messenger.persistence.room.model.RoomMessageModel;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Maybe;
import io.reactivex.Observable;
import io.reactivex.Single;
public class IMessageRepository implements MessageRepository<RoomMessageModel> {
private final MessageDao messageDao;
@Inject
public IMessageRepository(MessageDao messageDao) {
this.messageDao = messageDao;
}
@Override
public RoomMessageModel newMessageModel() {
return new RoomMessageModel();
}
@Override
public Maybe<RoomMessageModel> getMessage(long accountId, long chatId, long messageId) {
return null;
}
@Override
public Single<Long> insertMessage(RoomMessageModel message) {
return messageDao.insert(message);
}
@Override
public Single<List<Long>> insertMessages(List<RoomMessageModel> messages) {
return messageDao.insert(messages);
}
@Override
public Observable<RoomMessageModel> getLastMessageFrom(long accountId, EntityBareJid peer) {
return messageDao.getLastMessageFrom(accountId, peer);
}
@Override
public Observable<List<RoomMessageModel>> getAllMessages() {
return messageDao.getAllMessages();
}
@Override
public Observable<List<RoomMessageModel>> getAllMessagesOf(long accountId) {
return messageDao.getAllMessagesOf(accountId);
}
@Override
public Observable<List<RoomMessageModel>> getAllMessagesFrom(long accountId, EntityBareJid contact) {
return messageDao.getAllMessagesFrom(accountId, contact);
}
@Override
public Observable<List<RoomMessageModel>> getAllMessagesOfChat(long accountId, EntityBareJid peer) {
return messageDao.getAllMessagesInConversation(accountId, peer);
}
@Override
public Observable<List<RoomMessageModel>> findMessageByQuery(String query) {
return messageDao.findMessageByQuery("%" + query + "%");
}
@Override
public Observable<List<RoomMessageModel>> findMessageByQuery(long accountId, String query) {
return messageDao.findMessageByQuery(accountId, "%" + query + "%");
}
@Override
public Observable<List<RoomMessageModel>> findMessageByQuery(long accountId, EntityBareJid peer, String query) {
return messageDao.findMessageByQuery(accountId, peer, "%" + query + "%");
}
}