I'm doing multiple POSTs requests and I would like wait until the server comes back with a response after each POST.
Here is my code from the presenter:
public void sendMessage(final Message message, final String mediaFileName) {
messageSender.sendMessage(message)
.subscribeOn(processScheduler)
.subscribe(new DisposableSubscriber<Response<ResponseBody>>() {
@Override
public void onNext(Response<ResponseBody> responseBodyResponse) {
if (responseBodyResponse.code() >= 200 && responseBodyResponse.code() < 300 && responseBodyResponse.isSuccessful()) {
SharedPrefs.setLastMessageId(message.getMsgId());
Timber.d("Sent message: " + message.getContent() + " with id " + message.getMsgId());
}
}
@Override
public void onError(Throwable t) {
Timber.e("Error occurred while attempting to send message: " + t.getMessage());
}
@Override
public void onComplete() {
if (mediaFileName != null) {
retrieveMediaFile(mediaFileName, message);
}
}
});
}
Here is the interactor :
public class MessageSenderImpl implements MessageSender {
private final Service service;
private final AuthCredentials authCredentials;
public MessageSenderImpl(Service service, AuthCredentials authCredentials) {
this.service = service;
this.authCredentials = authCredentials;
}
@Override
public Flowable<Response<ResponseBody>> sendMessage(Message message) {
return service.sendMessage(authCredentials.auth(), message);
}
}
and my request:
@POST("someEndPoint")
Flowable<Response<ResponseBody>> sendMessage(@Header("Authorization") String auth, @Body Message message);
If for example I'm sending 10 POSTs, the response from the 3rd request might come back after the 10th one.
Note: Newbie in the RX world. Thank you in advance!