Skip to content

Commit c9c33c1

Browse files
committed
Add RequestPreprocessor
1 parent e434e8c commit c9c33c1

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.pengrad.telegrambot
2+
3+
import com.pengrad.telegrambot.request.BaseRequest
4+
import com.pengrad.telegrambot.response.BaseResponse
5+
6+
@get:JvmName("getEmptyRequestPreprocessor")
7+
val EMPTY_REQUEST_PREPROCESSOR: RequestPreprocessor = object : RequestPreprocessor {
8+
override fun <REQ : BaseRequest<REQ, RES>, RES : BaseResponse> process(request: BaseRequest<REQ, RES>) {
9+
// do nothing
10+
}
11+
}
12+
13+
interface RequestPreprocessor {
14+
15+
fun <REQ : BaseRequest<REQ, RES>, RES : BaseResponse> process(request: BaseRequest<REQ, RES>)
16+
17+
}

library/src/main/java/com/pengrad/telegrambot/TelegramBot.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.net.URLConnection;
2121
import java.util.concurrent.TimeUnit;
2222

23+
import static com.pengrad.telegrambot.RequestPreprocessorKt.getEmptyRequestPreprocessor;
24+
2325
/**
2426
* Stas Parshin
2527
* 16 October 2015
@@ -30,6 +32,7 @@ public class TelegramBot implements TelegramAware {
3032
private final TelegramBotClient api;
3133
private final FileApi fileApi;
3234
private final UpdatesHandler updatesHandler;
35+
private final RequestPreprocessor requestPreprocessor;
3336

3437
public TelegramBot(String botToken) {
3538
this(new Builder(botToken));
@@ -40,14 +43,17 @@ public TelegramBot(String botToken) {
4043
this.api = builder.api;
4144
this.fileApi = builder.fileApi;
4245
this.updatesHandler = builder.updatesHandler;
46+
this.requestPreprocessor = builder.requestPreprocessor;
4347
}
4448

4549
@NotNull
4650
public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(@NotNull BaseRequest<T, R> request) {
51+
requestPreprocessor.process(request);
4752
return api.send(request);
4853
}
4954

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

@@ -100,6 +106,7 @@ public static final class Builder {
100106
private FileApi fileApi;
101107
private TelegramBotClient api;
102108
private UpdatesHandler updatesHandler;
109+
private RequestPreprocessor requestPreprocessor;
103110

104111
private OkHttpClient okHttpClient;
105112
private String apiUrl;
@@ -111,6 +118,7 @@ public Builder(String botToken) {
111118
api = new TelegramBotClient(client(null), gson(), apiUrl(API_URL, botToken, useTestServer));
112119
fileApi = new FileApi(botToken);
113120
updatesHandler = new UpdatesHandler(100);
121+
requestPreprocessor = getEmptyRequestPreprocessor();
114122
}
115123

116124
public Builder debug() {
@@ -143,6 +151,11 @@ public Builder useTestServer(boolean useTestServer) {
143151
return this;
144152
}
145153

154+
public Builder requestPreprocessor(RequestPreprocessor requestPreprocessor) {
155+
this.requestPreprocessor = requestPreprocessor;
156+
return this;
157+
}
158+
146159
public TelegramBot build() {
147160
if (okHttpClient != null || apiUrl != null) {
148161
OkHttpClient client = okHttpClient != null ? okHttpClient : client(null);

0 commit comments

Comments
 (0)