package com.fastaccess.provider.rest.interceptors;
import com.fastaccess.data.service.NotificationService;
import com.fastaccess.helper.InputHelper;
import java.io.IOException;
import java.net.URI;
import lombok.AllArgsConstructor;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
@AllArgsConstructor
public class AuthenticationInterceptor implements Interceptor {
private String authToken;
private String otp;
@Override public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
if (original.url() != HttpUrl.get(URI.create(NotificationService.SUBSCRIPTION_URL))) {
Request.Builder builder = original.newBuilder();
if (!InputHelper.isEmpty(authToken)) {
builder.header("Authorization", authToken.startsWith("Basic") ? authToken : "token " + authToken);
}
if (!InputHelper.isEmpty(otp)) {
builder.addHeader("X-GitHub-OTP", otp.trim());
}
Request request = builder.build();
return chain.proceed(request);
}
return chain.proceed(original);
}
}