package io.qameta.allure.bamboo;
import com.atlassian.bamboo.configuration.GlobalAdminAction;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.Preparable;
import java.util.Map;
import static com.atlassian.bamboo.util.ActionParamsUtils.getStringArrayMap;
public class ConfigureAllureReportAction extends GlobalAdminAction implements Preparable {
private final AllureSettingsManager settingsManager;
private AllureGlobalConfig config;
public ConfigureAllureReportAction(AllureSettingsManager settingsManager) {
this.settingsManager = settingsManager;
}
@Override
public String execute() throws Exception {
settingsManager.saveSettings(AllureGlobalConfig.fromContext(getStringArrayMap()));
return super.execute();
}
@Override
public void validate() {
super.validate();
final Map<String, String[]> valuesMap = getStringArrayMap();
if (!valuesMap.containsKey(AllureConstants.ALLURE_CONFIG_DOWNLOAD_BASE_URL)) {
addActionError(getText("allure.config.download.url.error.required"));
}
}
private AllureGlobalConfig getAllureConfig() {
return settingsManager.getSettings();
}
@Override
public void prepare() throws Exception {
this.config = getAllureConfig();
getAllureConfig().toContext(ActionContext.getContext().getContextMap());
}
public AllureGlobalConfig getConfig() {
return config;
}
}