Skip to content

Commit

Permalink
Add RequestPreprocessor
Browse files Browse the repository at this point in the history
  • Loading branch information
anfanik committed Jan 22, 2025
1 parent 5a994fa commit 25ade71
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.pengrad.telegrambot

import com.pengrad.telegrambot.request.BaseRequest
import com.pengrad.telegrambot.response.BaseResponse

@get:JvmName("getEmptyRequestPreprocessor")
val EMPTY_REQUEST_PREPROCESSOR: RequestPreprocessor = object : RequestPreprocessor {
override fun <REQ : BaseRequest<REQ, RES>, RES : BaseResponse> process(request: BaseRequest<REQ, RES>) {
// do nothing
}
}

interface RequestPreprocessor {

fun <REQ : BaseRequest<REQ, RES>, RES : BaseResponse> process(request: BaseRequest<REQ, RES>)

}
13 changes: 13 additions & 0 deletions library/src/main/java/com/pengrad/telegrambot/TelegramBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import java.net.URLConnection;
import java.util.concurrent.TimeUnit;

import static com.pengrad.telegrambot.RequestPreprocessorKt.getEmptyRequestPreprocessor;

/**
* Stas Parshin
* 16 October 2015
Expand All @@ -30,6 +32,7 @@ public class TelegramBot implements TelegramAware {
private final TelegramBotClient api;
private final FileApi fileApi;
private final UpdatesHandler updatesHandler;
private final RequestPreprocessor requestPreprocessor;

public TelegramBot(String botToken) {
this(new Builder(botToken));
Expand All @@ -40,14 +43,17 @@ public TelegramBot(String botToken) {
this.api = builder.api;
this.fileApi = builder.fileApi;
this.updatesHandler = builder.updatesHandler;
this.requestPreprocessor = builder.requestPreprocessor;
}

@NotNull
public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(@NotNull BaseRequest<T, R> request) {
requestPreprocessor.process(request);
return api.send(request);
}

public <T extends BaseRequest<T, R>, R extends BaseResponse> Cancellable execute(T request, Callback<T, R> callback) {
requestPreprocessor.process(request);
return api.send(request, callback);
}

Expand Down Expand Up @@ -100,6 +106,7 @@ public static final class Builder {
private FileApi fileApi;
private TelegramBotClient api;
private UpdatesHandler updatesHandler;
private RequestPreprocessor requestPreprocessor;

private OkHttpClient okHttpClient;
private String apiUrl;
Expand All @@ -111,6 +118,7 @@ public Builder(String botToken) {
api = new TelegramBotClient(client(null), gson(), apiUrl(API_URL, botToken, useTestServer));
fileApi = new FileApi(botToken);
updatesHandler = new UpdatesHandler(100);
requestPreprocessor = getEmptyRequestPreprocessor();
}

public Builder debug() {
Expand Down Expand Up @@ -143,6 +151,11 @@ public Builder useTestServer(boolean useTestServer) {
return this;
}

public Builder requestPreprocessor(RequestPreprocessor requestPreprocessor) {
this.requestPreprocessor = requestPreprocessor;
return this;
}

public TelegramBot build() {
if (okHttpClient != null || apiUrl != null) {
OkHttpClient client = okHttpClient != null ? okHttpClient : client(null);
Expand Down

0 comments on commit 25ade71

Please sign in to comment.