import AgentConfig from "../data/AgentConfig"; import ApiConfig from "../data/ApiConfig"; import URI from "../data/uri/URI"; import BlackListRule from "../data/BlackListRule"; import { isNil } from "./Validators"; class AgentConfigUtils { static isConfigValid(config: AgentConfig): boolean { if (isNil(config)) { return false; } if (isNil(config.getBufferSyncFreqInSec())) { return false; } if (isNil(config.getConfigFetchFreqInSec())) { return false; } if (isNil(config.getCaptureApiSample())) { return false; } if (isNil(config.getDiscoveryBufferSize())) { return false; } if (isNil(config.getDiscoveryBufferSizePerApi())) { return false; } if (!isNil(config.getRegisteredApiConfigs())) { for (let apiConfig of config.getRegisteredApiConfigs()) { if (!this.isApiConfigValid(apiConfig)) { return false; } } } if (!isNil(config.getBlackListRules())) { for (let blackListRule of config.getBlackListRules()) { if (this.isBlackListRuleValid(blackListRule)) { return false; } } } return true; } static isBlackListRuleValid(blackListRule: BlackListRule): boolean { if (isNil(blackListRule)) { return false; } if (!blackListRule.isValid()) { return false; } return true; } static isApiConfigValid(apiConfig: ApiConfig): boolean { if (isNil(apiConfig)) { return false; } if (!this.isURIValid(apiConfig.getUri())) { return false; } if (isNil(apiConfig.getMethod())) { return false; } if (isNil(apiConfig.getBufferSize())) { return false; } if (isNil(apiConfig.getCaptureSampleRequest())) { return false; } if (isNil(apiConfig.getCaptureSampleResponse())) { return false; } return true; } static isURIValid(uri: URI): boolean { if (isNil(uri)) { return false; } if (isNil(uri.getUriPath())) { return false; } if (uri.getUriPath().length === 0) { return false; } return true; } } export default AgentConfigUtils;