package com.sequenceiq.cloudbreak.converter;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.sequenceiq.cloudbreak.api.model.ClusterTemplateRequest;
import com.sequenceiq.cloudbreak.controller.BadRequestException;
import com.sequenceiq.cloudbreak.controller.json.JsonHelper;
import com.sequenceiq.cloudbreak.domain.ClusterTemplate;
import com.sequenceiq.cloudbreak.domain.json.Json;
@Component
public class JsonToClusterTemplateConverter extends AbstractConversionServiceAwareConverter<ClusterTemplateRequest, ClusterTemplate> {
private static final Logger LOGGER = LoggerFactory.getLogger(JsonToClusterTemplateConverter.class);
@Inject
private JsonHelper jsonHelper;
@Override
public ClusterTemplate convert(ClusterTemplateRequest json) {
ClusterTemplate clusterTemplate = new ClusterTemplate();
clusterTemplate.setName(json.getName());
try {
clusterTemplate.setTemplate(new Json(json.getTemplate()));
} catch (JsonProcessingException e) {
LOGGER.error("Cloudtemplate cannot be converted to JSON: " + json.getTemplate(), e);
throw new BadRequestException("Cloudtemplate cannot be converted to JSON", e);
}
clusterTemplate.setType(json.getType());
return clusterTemplate;
}
}