From a50b7a2985df84c3ce7e858703576505bbb63814 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Thu, 14 Jul 2016 16:48:43 +0200 Subject: [PATCH] implement missing update model method --- .../org/hbp/mip/controllers/ModelsApi.java | 77 +++++++------------ 1 file changed, 29 insertions(+), 48 deletions(-) diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java index 8b87357ce..1b567aa91 100644 --- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java @@ -244,62 +244,43 @@ public class ModelsApi { @RequestBody @ApiParam(value = "Model to update", required = true) Model model ) { - /*User user = mipApplication.getUser(); + User user = securityConfiguration.getUser(); model.setTitle(model.getConfig().getTitle().get("text")); - try{ - String author = (String) session - .createQuery("select U.username from User U, Model M where M.createdBy = U.username and M.slug = :slug") - .setString("slug", slug) - .uniqueResult(); + Model oldModel = modelRepository.findOne(slug); - if(!user.getUsername().equals(author)) - { - session.getTransaction().commit(); - return new ResponseEntity<>(HttpStatus.FORBIDDEN); - } + String author = oldModel.getCreatedBy().getUsername(); - String oldTitle = (String) session - .createQuery("select title from Model where slug= :slug") - .setString("slug", slug) - .uniqueResult(); - - String newTitle = model.getTitle(); - - if(!newTitle.equals(oldTitle)) { - Long count; - int i = 0; - do { - i++; - newTitle = model.getTitle(); - count = (Long) session - .createQuery("select count(*) from Model where title= :title") - .setString("title", newTitle) - .uniqueResult(); - if (count > 0 && !newTitle.equals(oldTitle)) { - if (i > 1) { - newTitle = newTitle.substring(0, newTitle.length() - 4); - } - model.setTitle(newTitle + " (" + i + ")"); + if(!user.getUsername().equals(author)) + { + return new ResponseEntity<>(HttpStatus.FORBIDDEN); + } + + String oldTitle = oldModel.getTitle(); + String newTitle = model.getTitle(); + + if(!newTitle.equals(oldTitle)) { + Long count; + int i = 0; + do { + i++; + newTitle = model.getTitle(); + count = modelRepository.countByTitle(newTitle); + if (count > 0 && !newTitle.equals(oldTitle)) { + if (i > 1) { + newTitle = newTitle.substring(0, newTitle.length() - 4); } - } while (count > 0 && !newTitle.equals(oldTitle)); - } + model.setTitle(newTitle + " (" + i + ")"); + } + } while (count > 0 && !newTitle.equals(oldTitle)); + } - Map<String, String> map = new HashMap<>(model.getConfig().getTitle()); - map.put("text", model.getTitle()); - model.getConfig().setTitle(map); + Map<String, String> map = new HashMap<>(model.getConfig().getTitle()); + map.put("text", model.getTitle()); + model.getConfig().setTitle(map); - session.update(model); - session.getTransaction().commit(); - } catch (Exception e) - { - if(session.getTransaction() != null) - { - session.getTransaction().rollback(); - throw e; - } - }*/ + modelRepository.save(model); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } -- GitLab