Skip to content
Snippets Groups Projects
Commit 34ac118f authored by Mirco Nasuti's avatar Mirco Nasuti
Browse files

refactoring : try to reduce NPath complexity

parent e691bd4f
No related branches found
Tags 2.6.8
No related merge requests found
......@@ -118,72 +118,78 @@ public class ModelsApi {
model.setValid(false);
}
// Ensure the title is unique
boolean titleExists = true;
for(int i = 1; titleExists; i++)
ensureTitleUniqueness(model);
ensureSlugUniqueness(model);
Map<String, String> map = new HashMap<>(model.getConfig().getTitle());
map.put("text", model.getTitle());
model.getConfig().setTitle(map);
saveVariables(model.getQuery().getVariables());
saveVariables(model.getQuery().getCovariables());
saveVariables(model.getQuery().getGrouping());
configRepository.save(model.getConfig());
queryRepository.save(model.getQuery());
datasetRepository.save(model.getDataset());
modelRepository.save(model);
LOGGER.info("Model saved (also saved model.config and model.query)");
return ResponseEntity.status(HttpStatus.CREATED).body(model);
}
private void saveVariables(@RequestBody @ApiParam(value = "Model to create", required = true) List<Variable> variables) {
for (Variable var : variables)
{
String title = model.getTitle();
titleExists = modelRepository.countByTitle(title) > 0;
if(titleExists)
variableRepository.save(var);
}
}
private void ensureSlugUniqueness(@RequestBody @ApiParam(value = "Model to create", required = true) Model model) {
String slug = createSlug(model.getTitle());
boolean slugExists = true;
for(int i = 1; slugExists; i++)
{
slugExists = modelRepository.exists(slug);
if(slugExists)
{
if(i > 1)
{
title = title.substring(0, title.length()-4);
slug = slug.substring(0, slug.length()-2);
}
model.setTitle(title + " (" + i + ")");
slug += "-"+i;
}
model.setSlug(slug);
}
}
// Create slug from title
private String createSlug(@RequestBody @ApiParam(value = "Model to create", required = true) String title) {
String slug;
try {
slug = new Slugify().slugify(model.getTitle());
slug = new Slugify().slugify(title);
} catch (IOException e) {
slug = ""; // Should never happen
LOGGER.trace(e);
}
return slug;
}
// Ensure slug is unique
boolean slugExists = true;
for(int i = 1; slugExists; i++)
private void ensureTitleUniqueness(@RequestBody @ApiParam(value = "Model to create", required = true) Model model) {
boolean titleExists = true;
for(int i = 1; titleExists; i++)
{
slugExists = modelRepository.exists(slug);
if(slugExists)
String title = model.getTitle();
titleExists = modelRepository.countByTitle(title) > 0;
if(titleExists)
{
if(i > 1)
{
slug = slug.substring(0, slug.length()-2);
title = title.substring(0, title.length()-4);
}
slug += "-"+i;
model.setTitle(title + " (" + i + ")");
}
model.setSlug(slug);
}
Map<String, String> map = new HashMap<>(model.getConfig().getTitle());
map.put("text", model.getTitle());
model.getConfig().setTitle(map);
for (Variable var : model.getQuery().getVariables())
{
variableRepository.save(var);
}
for (Variable var : model.getQuery().getCovariables())
{
variableRepository.save(var);
}
for (Variable var : model.getQuery().getGrouping())
{
variableRepository.save(var);
}
configRepository.save(model.getConfig());
queryRepository.save(model.getQuery());
datasetRepository.save(model.getDataset());
modelRepository.save(model);
LOGGER.info("Model saved (also saved model.config and model.query)");
return ResponseEntity.status(HttpStatus.CREATED).body(model);
}
@ApiOperation(value = "Get a model", response = Model.class)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment