All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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