mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-29 06:54: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;
|
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.mapping.PeerMapping;
|
||||||
|
import org.mercury_im.messenger.data.model.AccountModel;
|
||||||
import org.mercury_im.messenger.data.model.PeerModel;
|
import org.mercury_im.messenger.data.model.PeerModel;
|
||||||
import org.mercury_im.messenger.entity.contact.SubscriptionDirection;
|
import org.mercury_im.messenger.entity.contact.SubscriptionDirection;
|
||||||
import org.mercury_im.messenger.util.Optional;
|
import org.mercury_im.messenger.util.Optional;
|
||||||
|
@ -127,15 +129,17 @@ public class XmppPeerRepository
|
||||||
.orderBy(PeerModel.ADDRESS)
|
.orderBy(PeerModel.ADDRESS)
|
||||||
.get().observableResult()
|
.get().observableResult()
|
||||||
.map(ResultDelegate::toList)
|
.map(ResultDelegate::toList)
|
||||||
.map(peerModels -> {
|
.map(this::peerModelsToEntities)
|
||||||
|
.subscribeOn(subscriberScheduler())
|
||||||
|
.observeOn(observerScheduler());
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Peer> peerModelsToEntities(List<PeerModel> peerModels) {
|
||||||
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
||||||
for (PeerModel model : peerModels) {
|
for (PeerModel model : peerModels) {
|
||||||
peerEntities.add(peerMapping.toEntity(model));
|
peerEntities.add(peerMapping.toEntity(model));
|
||||||
}
|
}
|
||||||
return peerEntities;
|
return peerEntities;
|
||||||
})
|
|
||||||
.subscribeOn(subscriberScheduler())
|
|
||||||
.observeOn(observerScheduler());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -145,13 +149,7 @@ public class XmppPeerRepository
|
||||||
.and(isContact())
|
.and(isContact())
|
||||||
.get().observableResult()
|
.get().observableResult()
|
||||||
.map(ResultDelegate::toList)
|
.map(ResultDelegate::toList)
|
||||||
.map(peerModels -> {
|
.map(this::peerModelsToEntities)
|
||||||
List<Peer> peerEntities = new ArrayList<>(peerModels.size());
|
|
||||||
for (PeerModel model : peerModels) {
|
|
||||||
peerEntities.add(peerMapping.toEntity(model));
|
|
||||||
}
|
|
||||||
return peerEntities;
|
|
||||||
})
|
|
||||||
.subscribeOn(subscriberScheduler())
|
.subscribeOn(subscriberScheduler())
|
||||||
.observeOn(observerScheduler());
|
.observeOn(observerScheduler());
|
||||||
}
|
}
|
||||||
|
@ -205,6 +203,11 @@ public class XmppPeerRepository
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Completable deletePeer(UUID accountId, String address) {
|
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