/* * Copyright (C), 2018-2021 * Project: starter * FileName: AbstractDataOutput * Author: xx * Date: 2021/4/12 15:13 */ package com.fr.plugin.ajchk.action; import com.fanruan.api.i18n.I18nKit; import com.fanruan.api.util.StringKit; import com.fr.schedule.feature.output.OutputActionHandler; import java.util.HashMap; import java.util.Map; /** *
* * * @author xx * @since 1.0.0 */ public abstract class AbstractDataOutput extends OutputActionHandler { @Override public void doAction(OutputHttp outputHttp, Map taskParams) throws Exception { this.checkOutputHttp(outputHttp); Map bodyParams = getHttpParams(outputHttp.getBodyParameters()); if (bodyParams.isEmpty()) { return; } Map headers = getHttpParams(outputHttp.getHeaders()); checkHeader(headers); operation(outputHttp, taskParams, bodyParams, headers); } /** * 根据参数名在定时调度任务参数结果中,提取参数值信息 * * @return * @throws Exception */ private Map getHttpParams(String paramsStr) { String[] params = paramsStr.split(";"); String[] keyAndValue; Map result = new HashMap<>(); for (String content : params) { keyAndValue = content.split("="); result.put(keyAndValue[0], keyAndValue[1]); } return result; } public void checkOutputHttp(OutputHttp outputHttp) throws Exception { if (outputHttp == null || StringKit.isBlank(outputHttp.getApiUrl())) { throw new Exception(I18nKit.getLocText("Plugin-httpaction_Link_Valid")); } } public void checkHeader(Map headers) throws Exception { } public abstract void operation(OutputHttp outputHttp, Map taskParams, Map bodyParams, Map headers) throws Exception; }