This commit is contained in:
Andrea Cavalli 2021-04-13 21:48:36 +02:00
parent 03132ca0bf
commit 8241493fc0
3 changed files with 13 additions and 23 deletions

View File

@ -11,7 +11,7 @@ public interface ReactorTelegramClient {
Flux<Object> receive();
<T extends TdApi.Object> Mono<T> send(TdApi.Function query);
Mono<TdApi.Object> send(TdApi.Function query);
<T extends TdApi.Object> T execute(TdApi.Function query);
TdApi.Object execute(TdApi.Function query);
}

View File

@ -46,14 +46,13 @@ public class WrappedReactorTelegramClient implements ReactorTelegramClient {
* @return a publisher that will emit exactly one item, or an error
*/
@Override
public <T extends TdApi.Object> Mono<T> send(TdApi.Function query) {
public Mono<TdApi.Object> send(TdApi.Function query) {
return Flux.from(reactiveTelegramClient.send(query)).single().handle((item, sink) -> {
if (item.getConstructor() == Error.CONSTRUCTOR) {
var error = ((TdApi.Error) item);
sink.error(new TdError(error.code, error.message));
} else {
//noinspection unchecked
sink.next((T) item);
sink.next(item);
}
});
}
@ -66,8 +65,7 @@ public class WrappedReactorTelegramClient implements ReactorTelegramClient {
* @throws NullPointerException if query is null.
*/
@Override
public <T extends TdApi.Object> T execute(TdApi.Function query) {
//noinspection unchecked
return (T) reactiveTelegramClient.execute(query);
public TdApi.Object execute(TdApi.Function query) {
return reactiveTelegramClient.execute(query);
}
}

View File

@ -8,7 +8,6 @@ import it.tdlight.jni.TdApi.AuthorizationStateClosing;
import it.tdlight.jni.TdApi.AuthorizationStateReady;
import it.tdlight.jni.TdApi.Close;
import it.tdlight.jni.TdApi.ConnectionStateReady;
import it.tdlight.jni.TdApi.Error;
import it.tdlight.jni.TdApi.FormattedText;
import it.tdlight.jni.TdApi.Function;
import it.tdlight.jni.TdApi.Message;
@ -24,7 +23,6 @@ import it.tdlight.jni.TdApi.UpdateAuthorizationState;
import it.tdlight.jni.TdApi.UpdateConnectionState;
import it.tdlight.jni.TdApi.UpdateNewMessage;
import it.tdlight.tdlibsession.td.ReactorTelegramClient;
import it.tdlight.tdlibsession.td.TdError;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -109,29 +107,23 @@ public class TestClient implements ReactorTelegramClient {
}
@Override
public <T extends TdApi.Object> Mono<T> send(Function query) {
return Mono.<T>fromCallable(() -> {
public Mono<TdApi.Object> send(Function query) {
return Mono.fromCallable(() -> {
TdApi.Object result = executeCommon(query);
if (result != null) {
if (result.getConstructor() != Error.CONSTRUCTOR) {
//noinspection unchecked
return (T) result;
} else {
Error error = (Error) result;
throw new TdError(error.code, error.message);
}
return result;
}
throw new TdError(500, "Unsupported");
return new TdApi.Error(500, "Unsupported");
});
}
@Override
public <T extends TdApi.Object> T execute(Function query) {
public TdApi.Object execute(Function query) {
TdApi.Object result = executeCommon(query);
if (result != null) {
return (T) result;
return result;
}
throw new TdError(500, "Unsupported");
return new TdApi.Error(500, "Unsupported");
}
@Nullable