// Path: app/src/main/java/io/github/kobakei/anago/entity/Issue.java
// public class Issue {
//     public String state;
//     public String title;
//     public String body;
//     public int number;
//     public User user;
// }
// 
// Path: app/src/main/java/io/github/kobakei/anago/net/GitHubApiClient.java
// public interface GitHubApiClient {
// 
//     @PUT("/authorizations/clients/{client_id}/{fingerprint}")
//     Single<AuthToken> putAuthorization(@Header("Authorization") String authorization,
//                                        @Path("client_id") String clientId,
//                                        @Path("fingerprint") String fingerprint,
//                                        @Body AuthorizationBody body);
// 
//     @DELETE("/applications/{client_id}/tokens/{token}")
//     Single<Void> revokeAuthorization(@Header("Authorization") String authorization,
//                                      @Path("client_id") String clientId,
//                                      @Path("token") String token);
// 
//     @GET("/repositories")
//     Single<List<Repo>> getPublicRepos(@Query("page") int page,
//                                       @Query("per_page") int perPage);
// 
//     @GET("/user/repos")
//     Single<List<Repo>> getUserRepos(@Header("Authorization") String authorization,
//                                     @Query("page") int page,
//                                     @Query("per_page") int perPage);
//     @GET("/repos/{user}/{repo}")
//     Single<Repo> getRepo(@Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @GET("/user/starred/{user}/{repo}")
//     Single<Void> getStar(@Header("Authorization") String authorization,
//                          @Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @GET("/user/starred")
//     Single<List<Repo>> getStarredRepos(@Header("Authorization") String authorization,
//                                        @Query("page") int page,
//                                        @Query("per_page") int perPage);
// 
//     @Headers({"Content-Length: 0"})
//     @PUT("/user/starred/{user}/{repo}")
//     Single<Void> putStar(@Header("Authorization") String authorization,
//                          @Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @DELETE("/user/starred/{user}/{repo}")
//     Single<Void> deleteStar(@Header("Authorization") String authorization,
//                             @Path("user") String user,
//                             @Path("repo") String repo);
// 
//     @GET("/users/{user}")
//     Single<User> getUser(@Path("user") String user);
// 
//     @GET("/repos/{user}/{repo}/stargazers")
//     Single<List<User>> getStargazers(@Path("user") String user,
//                                      @Path("repo") String repo,
//                                      @Query("page") int page,
//                                      @Query("per_page") int perPage);
// 
//     @GET("/repos/{user}/{repo}/contents/{path}")
//     Single<Content> getFileContent(@Path("user") String user,
//                                    @Path("repo") String repo,
//                                    @Path("path") String path);
// 
//     @GET("/repos/{user}/{repo}/contents/{path}")
//     Single<List<Content>> getDirContent(@Path("user") String user,
//                                         @Path("repo") String repo,
//                                         @Path("path") String path);
// 
//     @GET("/repos/{user}/{repo}/issues")
//     Single<List<Issue>> getIssues(@Path("user") String user,
//                                   @Path("repo") String repo,
//                                   @Query("state") String state);
// 
//     @GET("/repos/{user}/{repo}/pulls")
//     Single<List<PullRequest>> getPullRequests(@Path("user") String user,
//                                               @Path("repo") String repo);
// }


import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import io.github.kobakei.anago.entity.Issue;
import io.github.kobakei.anago.net.GitHubApiClient;
import rx.Single;
package io.github.kobakei.anago.repository;




/**
 * Created by keisuke on 2016/10/09.
 */
@Singleton
public class IssueRepository extends Repository<String, Issue> {

    private final GitHubApiClient gitHubApiClient;

    @Inject
    public IssueRepository(GitHubApiClient gitHubApiClient) {
// Path: app/src/main/java/io/github/kobakei/anago/entity/Issue.java
// public class Issue {
//     public String state;
//     public String title;
//     public String body;
//     public int number;
//     public User user;
// }
// 
// Path: app/src/main/java/io/github/kobakei/anago/net/GitHubApiClient.java
// public interface GitHubApiClient {
// 
//     @PUT("/authorizations/clients/{client_id}/{fingerprint}")
//     Single<AuthToken> putAuthorization(@Header("Authorization") String authorization,
//                                        @Path("client_id") String clientId,
//                                        @Path("fingerprint") String fingerprint,
//                                        @Body AuthorizationBody body);
// 
//     @DELETE("/applications/{client_id}/tokens/{token}")
//     Single<Void> revokeAuthorization(@Header("Authorization") String authorization,
//                                      @Path("client_id") String clientId,
//                                      @Path("token") String token);
// 
//     @GET("/repositories")
//     Single<List<Repo>> getPublicRepos(@Query("page") int page,
//                                       @Query("per_page") int perPage);
// 
//     @GET("/user/repos")
//     Single<List<Repo>> getUserRepos(@Header("Authorization") String authorization,
//                                     @Query("page") int page,
//                                     @Query("per_page") int perPage);
//     @GET("/repos/{user}/{repo}")
//     Single<Repo> getRepo(@Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @GET("/user/starred/{user}/{repo}")
//     Single<Void> getStar(@Header("Authorization") String authorization,
//                          @Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @GET("/user/starred")
//     Single<List<Repo>> getStarredRepos(@Header("Authorization") String authorization,
//                                        @Query("page") int page,
//                                        @Query("per_page") int perPage);
// 
//     @Headers({"Content-Length: 0"})
//     @PUT("/user/starred/{user}/{repo}")
//     Single<Void> putStar(@Header("Authorization") String authorization,
//                          @Path("user") String user,
//                          @Path("repo") String repo);
// 
//     @DELETE("/user/starred/{user}/{repo}")
//     Single<Void> deleteStar(@Header("Authorization") String authorization,
//                             @Path("user") String user,
//                             @Path("repo") String repo);
// 
//     @GET("/users/{user}")
//     Single<User> getUser(@Path("user") String user);
// 
//     @GET("/repos/{user}/{repo}/stargazers")
//     Single<List<User>> getStargazers(@Path("user") String user,
//                                      @Path("repo") String repo,
//                                      @Query("page") int page,
//                                      @Query("per_page") int perPage);
// 
//     @GET("/repos/{user}/{repo}/contents/{path}")
//     Single<Content> getFileContent(@Path("user") String user,
//                                    @Path("repo") String repo,
//                                    @Path("path") String path);
// 
//     @GET("/repos/{user}/{repo}/contents/{path}")
//     Single<List<Content>> getDirContent(@Path("user") String user,
//                                         @Path("repo") String repo,
//                                         @Path("path") String path);
// 
//     @GET("/repos/{user}/{repo}/issues")
//     Single<List<Issue>> getIssues(@Path("user") String user,
//                                   @Path("repo") String repo,
//                                   @Query("state") String state);
// 
//     @GET("/repos/{user}/{repo}/pulls")
//     Single<List<PullRequest>> getPullRequests(@Path("user") String user,
//                                               @Path("repo") String repo);
// }


// Path: app/src/main/java/io/github/kobakei/anago/repository/IssueRepository.java
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import io.github.kobakei.anago.entity.Issue;
import io.github.kobakei.anago.net.GitHubApiClient;
import rx.Single;

package io.github.kobakei.anago.repository;




/**
 * Created by keisuke on 2016/10/09.
 */
@Singleton
public class IssueRepository extends Repository<String, Issue> {

    private final GitHubApiClient gitHubApiClient;

    @Inject
    public IssueRepository(GitHubApiClient gitHubApiClient) {
        super();