Repository navigation
Expand file tree
/
Copy pathRESTInterceptor.java
More file actions
54 lines (40 loc) · 1.63 KB
/
Copy pathRESTInterceptor.java
File metadata and controls
54 lines (40 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import android.content.Context;
import com.google.android.gms.common.api.Api;
import java.io.IOException;
import javax.inject.Inject;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.Buffer;
public class RESTInterceptor implements Interceptor {
@Inject
UserRepository userRepository;
@Inject
ApiLogManager logManager;
public RESTInterceptor(Context context) {
((App) context.getApplicationContext()).getAppComponent().inject(this);
}
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Response response;
Buffer buffer = new Buffer();
if (request.body() != null)
request.body().writeTo(buffer);
String token = userRepository.getOAthToken();
if (token != null && !token.isEmpty()) {
request = request.newBuilder()
.addHeader(ServerApiConstants.HEADER_AUTHORIZATION, ServerApiConstants.HEADER_AUTHORIZATION_BEARER + token)
.build();
}
logManager.printRequest(request.url().toString(), request.headers().toString(), buffer.readUtf8());
response = chain.proceed(request);
String msg = response.body().string();
msg = msg.replace("\r", ""); // Note: Messages with '\r' not displayed correctly in logcat
logManager.printResponce(response.request().url().toString(), response.code(), msg);
return response.newBuilder()
.body(ResponseBody.create(response.body().contentType(), msg))
.build();
}
}