mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-18 09:34:52 +02:00
Further refactoring of XmppPeerRepo
This commit is contained in:
parent
7606a3c351
commit
266bc1f55a
|
@ -1,6 +1,8 @@
|
|||
package org.mercury_im.messenger.data.repository;
|
||||
|
||||
import org.mercury_im.messenger.data.mapping.AccountMapping;
|
||||
import org.mercury_im.messenger.data.mapping.PeerMapping;
|
||||
import org.mercury_im.messenger.data.model.AccountModel;
|
||||
import org.mercury_im.messenger.data.model.PeerModel;
|
||||
import org.mercury_im.messenger.entity.contact.SubscriptionDirection;
|
||||
import org.mercury_im.messenger.util.Optional;
|
||||
|
@ -127,17 +129,19 @@ public class XmppPeerRepository
|
|||
.orderBy(PeerModel.ADDRESS)
|
||||
.get().observableResult()
|
||||
.map(ResultDelegate::toList)
|
||||
.map(peerModels -> {
|
||||
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
||||
for (PeerModel model : peerModels) {
|
||||
peerEntities.add(peerMapping.toEntity(model));
|
||||
}
|
||||
return peerEntities;
|
||||
})
|
||||
.map(this::peerModelsToEntities)
|
||||
.subscribeOn(subscriberScheduler())
|
||||
.observeOn(observerScheduler());
|
||||
}
|
||||
|
||||
private List<Peer> peerModelsToEntities(List<PeerModel> peerModels) {
|
||||
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
||||
for (PeerModel model : peerModels) {
|
||||
peerEntities.add(peerMapping.toEntity(model));
|
||||
}
|
||||
return peerEntities;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<List<Peer>> observeAllContactsOfAccount(UUID accountId) {
|
||||
return data().select(PeerModel.class)
|
||||
|
@ -145,13 +149,7 @@ public class XmppPeerRepository
|
|||
.and(isContact())
|
||||
.get().observableResult()
|
||||
.map(ResultDelegate::toList)
|
||||
.map(peerModels -> {
|
||||
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
||||
for (PeerModel model : peerModels) {
|
||||
peerEntities.add(peerMapping.toEntity(model));
|
||||
}
|
||||
return peerEntities;
|
||||
})
|
||||
.map(this::peerModelsToEntities)
|
||||
.subscribeOn(subscriberScheduler())
|
||||
.observeOn(observerScheduler());
|
||||
}
|
||||
|
@ -205,6 +203,11 @@ public class XmppPeerRepository
|
|||
|
||||
@Override
|
||||
public Completable deletePeer(UUID accountId, String address) {
|
||||
return null;
|
||||
return data().delete(PeerModel.class)
|
||||
.where(PeerModel.ACCOUNT_ID.eq(accountId)
|
||||
.and(PeerModel.ADDRESS.eq(address)))
|
||||
.get().single().ignoreElement()
|
||||
.subscribeOn(subscriberScheduler())
|
||||
.observeOn(observerScheduler());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue