// Path: github-api/src/main/java/com/dmitrymalkovich/android/githubapi/core/data/AccessToken.java
// @SuppressWarnings("all")
// public class AccessToken {
// 
//     @SerializedName("access_token")
//     private String mAccessToken;
//     @SerializedName("token_type")
//     private String mTokenType;
// 
//     public String getToken() {
//         return mAccessToken;
//     }
// 
//     public String getTokenType() {
//         return mTokenType;
//     }
// 
//     public void setTokenType(String tokenType) {
//         this.mTokenType = tokenType;
//     }
// 
//     public void setAccessToken(String accessToken) {
//         this.mAccessToken = accessToken;
//     }
// }
// 
// Path: github-api/src/main/java/com/dmitrymalkovich/android/githubapi/core/data/Star.java
// @SuppressWarnings("all")
// public class Star {
// 
//     @SerializedName("user")
//     public User mUser;
//     @SerializedName("starred_at")
//     private String mStarredAt;
// 
//     public String getStarredAt() {
//         return mStarredAt;
//     }
// 
//     private class User {
//         @SerializedName("id")
//         private long mId;
// 
//         @SerializedName("login")
//         private String mLogin;
// 
//         @SerializedName("url")
//         private String mUrl;
// 
//         public long getId() {
//             return mId;
//         }
// 
//         public String getLogin() {
//             return mLogin;
//         }
// 
//         public String getUrl() {
//             return mUrl;
//         }
//     }
// }


import retrofit2.Converter;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import android.support.annotation.NonNull;
import com.dmitrymalkovich.android.githubapi.core.data.AccessToken;
import com.dmitrymalkovich.android.githubapi.core.data.Star;
import com.google.gson.annotations.SerializedName;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.List;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.ResponseBody;
import okhttp3.logging.HttpLoggingInterceptor;
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(API_HTTPS_BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(new OkHttpClient.Builder().build()).build();

            Converter<ResponseBody, APIError> converter =
                    retrofit.responseBodyConverter(APIError.class, new Annotation[0]);

            APIError error;

            try {
                error = converter.convert(response.errorBody());
            } catch (IOException e) {
                return new APIError();
            }

            return error;
        }

        public String getMessage() {
            return mMessage;
        }
    }

    public class Pagination {

        public static final String LAST_PAGE = "last";
        private static final String HEADER_LINK = "Link";
        private int mLastPage;

// Path: github-api/src/main/java/com/dmitrymalkovich/android/githubapi/core/data/AccessToken.java
// @SuppressWarnings("all")
// public class AccessToken {
// 
//     @SerializedName("access_token")
//     private String mAccessToken;
//     @SerializedName("token_type")
//     private String mTokenType;
// 
//     public String getToken() {
//         return mAccessToken;
//     }
// 
//     public String getTokenType() {
//         return mTokenType;
//     }
// 
//     public void setTokenType(String tokenType) {
//         this.mTokenType = tokenType;
//     }
// 
//     public void setAccessToken(String accessToken) {
//         this.mAccessToken = accessToken;
//     }
// }
// 
// Path: github-api/src/main/java/com/dmitrymalkovich/android/githubapi/core/data/Star.java
// @SuppressWarnings("all")
// public class Star {
// 
//     @SerializedName("user")
//     public User mUser;
//     @SerializedName("starred_at")
//     private String mStarredAt;
// 
//     public String getStarredAt() {
//         return mStarredAt;
//     }
// 
//     private class User {
//         @SerializedName("id")
//         private long mId;
// 
//         @SerializedName("login")
//         private String mLogin;
// 
//         @SerializedName("url")
//         private String mUrl;
// 
//         public long getId() {
//             return mId;
//         }
// 
//         public String getLogin() {
//             return mLogin;
//         }
// 
//         public String getUrl() {
//             return mUrl;
//         }
//     }
// }


// Path: github-api/src/main/java/com/dmitrymalkovich/android/githubapi/core/Service.java
import retrofit2.Converter;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import android.support.annotation.NonNull;
import com.dmitrymalkovich.android.githubapi.core.data.AccessToken;
import com.dmitrymalkovich.android.githubapi.core.data.Star;
import com.google.gson.annotations.SerializedName;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.List;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.ResponseBody;
import okhttp3.logging.HttpLoggingInterceptor;

            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(API_HTTPS_BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(new OkHttpClient.Builder().build()).build();

            Converter<ResponseBody, APIError> converter =
                    retrofit.responseBodyConverter(APIError.class, new Annotation[0]);

            APIError error;

            try {
                error = converter.convert(response.errorBody());
            } catch (IOException e) {
                return new APIError();
            }

            return error;
        }

        public String getMessage() {
            return mMessage;
        }
    }

    public class Pagination {

        public static final String LAST_PAGE = "last";
        private static final String HEADER_LINK = "Link";
        private int mLastPage;

        public void parse(Response<List<Star>> response) {