package com.sequenceiq.cloudbreak.converter; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Component; import com.fasterxml.jackson.core.JsonProcessingException; import com.sequenceiq.cloudbreak.api.model.OrchestratorRequest; import com.sequenceiq.cloudbreak.controller.BadRequestException; import com.sequenceiq.cloudbreak.domain.Orchestrator; import com.sequenceiq.cloudbreak.domain.json.Json; @Component public class JsonToOrchestratorConverter extends AbstractConversionServiceAwareConverter<OrchestratorRequest, Orchestrator> { @Override public Orchestrator convert(OrchestratorRequest source) { Orchestrator orchestrator = new Orchestrator(); orchestrator.setApiEndpoint(source.getApiEndpoint()); orchestrator.setType(source.getType()); Map<String, Object> params = new HashMap<>(); if (source.getParameters() != null && !source.getParameters().isEmpty()) { params = source.getParameters(); } try { orchestrator.setAttributes(new Json(params)); } catch (JsonProcessingException e) { throw new BadRequestException("Invalid parameters", e); } return orchestrator; } }