
org.sourcelab.github.client.response.parser.UserReposResponseParser Maven / Gradle / Ivy
The newest version!
package org.sourcelab.github.client.response.parser;
import org.sourcelab.github.client.http.HttpResult;
import org.sourcelab.github.client.objects.Repository;
import org.sourcelab.github.client.request.UserReposRequest;
import org.sourcelab.github.client.response.PagingLinks;
import org.sourcelab.github.client.response.UserReposResponse;
import java.io.IOException;
import java.util.Arrays;
public class UserReposResponseParser implements ResponseParser {
private final UserReposRequest originalRequest;
/**
* Constructor.
* @param originalRequest The original request so it can be appended to the response.
*/
public UserReposResponseParser(final UserReposRequest originalRequest) {
this.originalRequest = originalRequest;
}
@Override
public UserReposResponse parseResponse(final HttpResult result) throws IOException {
final PagingLinks pagingLinks;
if (result.getHttpHeaders().hasHeader("Link")) {
// Parse out the link header.
pagingLinks = PagingLinks.newBuilder()
.fromHeaderLine(result.getHttpHeaders().getHeader("Link"))
.build();
} else {
pagingLinks = PagingLinks.newBuilder().build();
}
final Repository[] repositories = JacksonFactory.newInstance().readValue(result.getContent(), Repository[].class);
return new UserReposResponse(pagingLinks, Arrays.asList(repositories), originalRequest);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy