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

62 lines
1.6 KiB
Java

package org.mercury_im.messenger.persistence.room.repository;
import org.mercury_im.messenger.persistence.model.AccountModel;
import org.mercury_im.messenger.persistence.repository.AccountRepository;
import org.mercury_im.messenger.persistence.room.dao.AccountDao;
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Completable;
import io.reactivex.Maybe;
import io.reactivex.Observable;
import io.reactivex.Single;
public class IAccountRepository implements AccountRepository<RoomAccountModel> {
private final AccountDao accountDao;
@Inject
public IAccountRepository(AccountDao accountDao) {
this.accountDao = accountDao;
}
@Override
public RoomAccountModel newAccountModel() {
return new RoomAccountModel();
}
@Override
public Maybe<RoomAccountModel> getAccount(long accountId) {
return accountDao.getAccountById(accountId);
}
@Override
public Observable<List<RoomAccountModel>> getAllAccounts() {
return accountDao.getAllAccounts();
}
@Override
public Single<Long> insertAccount(RoomAccountModel accountModel) {
return accountDao.insert(accountModel);
}
@Override
public Completable updateState(long accountId, String state) {
return accountDao.updateConnectionState(accountId, state);
}
@Override
public Completable deleteAccount(long accountId) {
return accountDao.deleteAccount(accountId);
}
@Override
public Completable deleteAccount(RoomAccountModel item) {
return accountDao.delete(item);
}
}