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

com.clarolab.client.JenkinsViewClient Maven / Gradle / Ivy

package com.clarolab.client;

import com.clarolab.entities.JenkinsContainer;
import com.clarolab.entities.JenkinsMainView;
import com.clarolab.entities.JenkinsView;
import com.clarolab.utils.JenkinsConstants;
import lombok.Builder;

import java.util.List;

public class JenkinsViewClient extends JenkinsClient{

    @Builder
    private JenkinsViewClient(JenkinsApiClient jenkinsApiClient){
        super(jenkinsApiClient);
    }

    public JenkinsContainer getContainer(String pathOrUrl) throws Exception {
        pathOrUrl = pathOrUrl.replace(" ", "%20");
        return getClient().get(JenkinsConstants.getApiEndpoint(pathOrUrl).toString(), JenkinsContainer.class);
    }

    public List getAllViewsFromRoot() throws Exception {
        return getClient().get(JenkinsConstants.JENKINS_API_JSON_VIEW_TREE_ENDPOINT, JenkinsMainView.class)
                .setHttpClient(getClient())
                .getAllViews();
    }

    public JenkinsView getView(String pathOrViewName) throws Exception {
        return getClient().get(String.format(JenkinsConstants.JENKINS_API_JSON_VIEW_ENDPOINT, normalizeViewPath(pathOrViewName)), JenkinsView.class);
    }

    private String normalizeViewPath(String path){
        // if it is only the view name, return it
        if(!path.contains("/"))
            return path;
        // if is a path, remove the first "view" sequence on path and return it
        if(path.endsWith("/"))
            path = new StringBuffer(path).deleteCharAt(path.length()-1).toString();
        if(path.startsWith("view"))
            return path.substring("view".length()+1);
        if(path.startsWith("/view"))
            return path.substring("/view".length()+1);
        return path;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy