package com.tevinjeffrey.rutgersct.testUtils;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.Response;
import com.tevinjeffrey.rutgersct.database.TrackedSections;
import com.tevinjeffrey.rutgersct.rutgersapi.model.Request;
import com.tevinjeffrey.rutgersct.rutgersapi.utils.SemesterUtils;
import com.tevinjeffrey.rutgersct.utils.Utils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import timber.log.Timber;
public class RutgersApiConts {
public static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
com.squareup.okhttp.Request originalRequest = chain.request();
Timber.d("Host: %s", originalRequest.httpUrl().host());
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.header("Cache-Control", "max-age=10")
.build();
}
};
List<TrackedSections> trackedSections;
static SemesterUtils semesterUtils = new SemesterUtils(Calendar.getInstance());
static final SemesterUtils.Semester SEMESTER = semesterUtils.resolveCurrentSemester();
static final String YEAR = "2016";
static final String SEASON = "Winter";
static final TrackedSections t1 = new TrackedSections("010", SEASON + " " + YEAR, "Newark", "Undergraduate", "00939");
static final TrackedSections t2 = new TrackedSections("014", SEASON + " " + YEAR, "Newark", "Undergraduate", "00810");
static final TrackedSections t3 = new TrackedSections("050", SEASON + " " + YEAR, "Newark", "Undergraduate", "00767");
static final TrackedSections t4 = new TrackedSections("522", SEASON + " " + YEAR, "Newark", "Undergraduate", "00044");
static final Request requestNewark =
new Request("010",
SEMESTER,
new ArrayList<>(Arrays.asList(new String[]{"Newark"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestBrunswick =
new Request("010",
SEMESTER,
new ArrayList<>(Arrays.asList(new String[]{"New Bruswick"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestCamden =
new Request("010",
SEMESTER,
new ArrayList<>(Arrays.asList(new String[]{"Camden"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestAllFall =
new Request("010",
//Current year - 1 because not all semesters of the current year will be available.
new SemesterUtils.Semester(SemesterUtils.Season.FALL, String.valueOf(Integer.valueOf(YEAR) - 1)),
new ArrayList<>(Arrays.asList(new String[]{"Newark", "New Brunswick", "Camden"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestAllWinter =
new Request("010",
new SemesterUtils.Semester(SemesterUtils.Season.WINTER, String.valueOf(Integer.valueOf(YEAR) - 1)),
new ArrayList<>(Arrays.asList(new String[]{"Newark", "New Brunswick", "Camden"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestAllSpring =
new Request("010",
new SemesterUtils.Semester(SemesterUtils.Season.SPRING, String.valueOf(Integer.valueOf(YEAR) - 1)),
new ArrayList<>(Arrays.asList(new String[]{"Newark", "New Brunswick", "Camden"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
static final Request requestAllSummer =
new Request("010",
new SemesterUtils.Semester(SemesterUtils.Season.SUMMER, String.valueOf(Integer.valueOf(YEAR) - 1)),
new ArrayList<>(Arrays.asList(new String[]{"Newark", "New Brunswick", "Camden"})),
new ArrayList<>(Arrays.asList(new String[]{"Undergraduate", "Graduate"})));
public RutgersApiConts() {
throw new AssertionError("Can't instantiate");
}
public static Request getPrimarySemesterRequest() {
return Utils.getRequestFromTrackedSections(t1);
}
public static Request getSecondarySemesterRequest() {
return Utils.getRequestFromTrackedSections(t2);
}
public static List<TrackedSections> createTrackedSections() {
ArrayList<TrackedSections> trackedSections = new ArrayList<>();
trackedSections.add(t1);
trackedSections.add(t2);
trackedSections.add(t3);
trackedSections.add(t4);
return trackedSections;
}
@Override
public String toString() {
return "RutgersApiTestConts{" +
"SEMESTER=" + SEMESTER +
'}';
}
public static Request getRequestFromTrackedSections(TrackedSections ts) {
return new Request(ts.getSubject(), new SemesterUtils.Semester(ts.getSemester()), ts.getLocations(), ts.getLevels(), ts.getIndexNumber());
}
}