Mercury-IM/data/src/main/java/org/mercury_im/messenger/data/repository/dao/MessageDao.java

51 lines
1.7 KiB
Java
Raw Normal View History

2019-12-08 18:27:34 +01:00
package org.mercury_im.messenger.data.repository.dao;
import org.mercury_im.messenger.data.model.DirectChatModel;
import org.mercury_im.messenger.data.model.DirectMessagesRelation;
import org.mercury_im.messenger.data.model.GroupChatModel;
import org.mercury_im.messenger.data.model.GroupMessagesRelation;
import org.mercury_im.messenger.data.model.MessageModel;
2019-12-08 22:49:42 +01:00
import io.reactivex.Single;
2019-12-08 18:27:34 +01:00
import io.requery.Persistable;
import io.requery.reactivex.ReactiveEntityStore;
import io.requery.reactivex.ReactiveResult;
public class MessageDao extends RequeryDao {
private final DirectChatDao directChatDao;
private final GroupChatDao groupChatDao;
public MessageDao(ReactiveEntityStore<Persistable> data) {
super(data);
this.directChatDao = new DirectChatDao(data);
this.groupChatDao = new GroupChatDao(data);
}
2019-12-08 22:49:42 +01:00
public Single<MessageModel> insert(MessageModel message) {
return data().insert(message);
}
2019-12-08 18:27:34 +01:00
public ReactiveResult<MessageModel> get(long messageId) {
return data().select(MessageModel.class)
.where(MessageModel.ID.eq(messageId))
.get();
}
private DirectMessagesRelation toRelation(DirectChatModel chat, MessageModel message) {
DirectMessagesRelation relation = new DirectMessagesRelation();
relation.setChat(chat);
relation.setMessage(message);
return relation;
}
private GroupMessagesRelation toRelation(GroupChatModel chat, MessageModel message) {
GroupMessagesRelation relation = new GroupMessagesRelation();
relation.setChat(chat);
relation.setMessage(message);
return relation;
}
}