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

com.denimgroup.threadfix.cli.ApplicationParameterParser Maven / Gradle / Ivy

////////////////////////////////////////////////////////////////////////
//
//     Copyright (c) 2009-2016 Denim Group, Ltd.
//
//     The contents of this file are subject to the Mozilla Public License
//     Version 2.0 (the "License"); you may not use this file except in
//     compliance with the License. You may obtain a copy of the License at
//     http://www.mozilla.org/MPL/
//
//     Software distributed under the License is distributed on an "AS IS"
//     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
//     License for the specific language governing rights and limitations
//     under the License.
//
//     The Original Code is ThreadFix.
//
//     The Initial Developer of the Original Code is Denim Group, Ltd.
//     Portions created by Denim Group, Ltd. are Copyright (C)
//     Denim Group, Ltd. All Rights Reserved.
//
//     Contributor(s): Denim Group, Ltd.
//
////////////////////////////////////////////////////////////////////////
package com.denimgroup.threadfix.cli;

import com.denimgroup.threadfix.VulnerabilityInfo;
import com.denimgroup.threadfix.data.entities.Application;
import com.denimgroup.threadfix.remote.ThreadFixRestClient;
import com.denimgroup.threadfix.remote.response.RestResponse;

import java.util.List;

import static com.denimgroup.threadfix.CollectionUtils.list;

/**
 * Created by mac on 5/22/14.
 */
public class ApplicationParameterParser extends GenericParameterParser {

    static final private List validParameters = list("applicationId", "name", "url", "uniqueId", "applicationCriticality",
            "frameworkType", "repositoryUrl", "repositoryBranch", "repositoryUserName", "repositoryPassword", "repositoryFolder", "repositoryType");

    public static RestResponse processApplicationParameters(ThreadFixRestClient client,
                                                                         String... args) {

        setParameters(collapseParameters(args)); // This makes me cringe but it's single-threaded right?

        checkKeyValueArguments(validParameters);

        return client.updateApplication(
                getStringValue("applicationId"),
                getStringValue("name"),
                getStringValue("url"),
                getStringValue("uniqueId"),
                getStringValue("applicationCriticality"),
                getStringValue("frameworkType"),
                getStringValue("repositoryType"),
                getStringValue("repositoryUrl"),
                getStringValue("repositoryBranch"),
                getStringValue("repositoryUserName"),
                getStringValue("repositoryPassword"),
                getStringValue("repositoryFolder")
        );
    }
}