package com.boardgamegeek.auth;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.HttpUrl;
import timber.log.Timber;
public class BggCookieJar implements CookieJar {
private String authToken;
private long authTokenExpiry;
@SuppressWarnings("unused") private String sessionId;
private long sessionIdExpiry;
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
Timber.w(url.toString());
Timber.w(cookies.toString());
for (Cookie cookie : cookies) {
if ("bggpassword".equalsIgnoreCase(cookie.name())) {
authToken = cookie.value();
authTokenExpiry = cookie.expiresAt();
} else if ("SessionID".equalsIgnoreCase(cookie.name())) {
sessionId = cookie.value();
sessionIdExpiry = cookie.expiresAt();
}
}
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
return Collections.emptyList();
}
public boolean isValid() {
return !TextUtils.isEmpty(authToken);
}
@NonNull
public static BggCookieJar getMock() {
BggCookieJar authResponse = new BggCookieJar();
authResponse.authToken = "password";
authResponse.authTokenExpiry = Long.MAX_VALUE;
authResponse.sessionId = "session";
authResponse.sessionIdExpiry = Long.MAX_VALUE;
return authResponse;
}
@NonNull
@Override
public String toString() {
return String.format("token: %s (%s); session: %s (%s)", authToken, new Date(authTokenExpiry), sessionIdExpiry, new Date(sessionIdExpiry));
}
public String getAuthToken() {
return authToken;
}
public long getAuthTokenExpiry() {
return authTokenExpiry;
}
}