package com.prateekj.snooper.networksnooper.viewmodel;
import com.prateekj.snooper.R;
import com.prateekj.snooper.networksnooper.model.HttpCall;
import com.prateekj.snooper.networksnooper.model.HttpHeader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import static java.util.Locale.US;
public class HttpCallViewModel {
private static final String TIMESTAMP_FORMAT = "MM/dd/yyyy HH:mm:ss";
private static final int RANGE_START_HTTP_OK = 200;
private static final int RANGE_END_HTTP_OK = 299;
private static final int RANGE_END_HTTP_REDIRECTION = 399;
private final HttpCall httpCall;
public HttpCallViewModel(HttpCall httpCall) {
this.httpCall = httpCall;
}
public String getUrl() {
return httpCall.getUrl();
}
public String getMethod() {
return httpCall.getMethod();
}
public String getStatusCode() {
return String.valueOf(httpCall.getStatusCode());
}
public String getStatusText() {
return httpCall.getStatusText();
}
public List<HttpHeader> getRequestHeaders() {
return httpCall.getRequestHeaders();
}
public List<HttpHeader> getResponseHeaders() {
return httpCall.getResponseHeaders();
}
public String getTimeStamp() {
DateFormat df = new SimpleDateFormat(TIMESTAMP_FORMAT, US);
return df.format(httpCall.getDate());
}
public int getStatusColor() {
int statusCode = httpCall.getStatusCode();
if (statusCode >= RANGE_START_HTTP_OK && statusCode <= RANGE_END_HTTP_OK) {
return R.color.snooper_green;
} else if (statusCode <= RANGE_END_HTTP_REDIRECTION) {
return R.color.snooper_yellow;
} else {
return R.color.snooper_red;
}
}
}