62 lines
1.6 KiB
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);
|
|
}
|
|
}
|