From f62e64c88a0d5e495fb386d70e8427d20a273b9e Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Tue, 15 Mar 2016 16:24:18 +0100
Subject: [PATCH] add some validation e.g. article title length

---
 src/main/java/org/hbp/mip/controllers/ArticlesApi.java | 5 +++--
 src/main/java/org/hbp/mip/model/Article.java           | 4 ++++
 src/main/java/org/hbp/mip/model/Model.java             | 1 +
 src/test/db                                            | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
index 14651ca07..bbbad3dfd 100644
--- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
@@ -18,6 +18,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.io.IOException;
 import java.util.Date;
 import java.util.LinkedList;
@@ -96,7 +97,7 @@ public class ArticlesApi {
     @ApiResponses(value = { @ApiResponse(code = 201, message = "Article created") })
     @RequestMapping(method = RequestMethod.POST)
     public ResponseEntity<Void> addAnArticle(
-            @RequestBody @ApiParam(value = "Article to create", required = true) Article article
+            @RequestBody @ApiParam(value = "Article to create", required = true) @Valid Article article
     ) {
 
         User user = mipApplication.getUser();
@@ -199,7 +200,7 @@ public class ArticlesApi {
     @RequestMapping(value = "/{slug}", method = RequestMethod.PUT)
     public ResponseEntity<Void> updateAnArticle(
             @ApiParam(value = "slug", required = true) @PathVariable("slug") String slug,
-            @RequestBody @ApiParam(value = "Article to update", required = true) Article article
+            @RequestBody @ApiParam(value = "Article to update", required = true) @Valid Article article
     ) {
 
         Session session = HibernateUtil.getSessionFactory().getCurrentSession();
diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java
index 4dee6010e..49e0fc817 100644
--- a/src/main/java/org/hbp/mip/model/Article.java
+++ b/src/main/java/org/hbp/mip/model/Article.java
@@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 
 import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
@@ -22,6 +24,8 @@ public class Article {
     @Id
     private String slug = null;
 
+    @NotNull
+    @Size(min = 1, max = 255)
     private String title = null;
 
     private String status = null;
diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java
index 08f2a509d..38daf00d6 100644
--- a/src/main/java/org/hbp/mip/model/Model.java
+++ b/src/main/java/org/hbp/mip/model/Model.java
@@ -51,6 +51,7 @@ public class Model {
     @JoinColumn(name = "updatedby_username")
     private User updatedBy = null;
 
+    @Column(columnDefinition = "text")
     private String textQuery = null;
 
 
diff --git a/src/test/db b/src/test/db
index 6b833cfe7..9f22b032e 160000
--- a/src/test/db
+++ b/src/test/db
@@ -1 +1 @@
-Subproject commit 6b833cfe795c98e6a6bcdcc17002b706d3f6d2ce
+Subproject commit 9f22b032e0f4728c5e46fa157b9db04b55c5f8e6
-- 
GitLab