From d458f3b9017b568124974f560cb030d7822212bb Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Mon, 14 Mar 2016 10:29:08 +0100 Subject: [PATCH] Slugify in a clean way --- pom.xml | 5 +++++ .../java/org/hbp/mip/controllers/ArticlesApi.java | 13 ++++++++++++- .../java/org/hbp/mip/controllers/ModelsApi.java | 12 +++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9217a4642..d6f9ca36e 100644 --- a/pom.xml +++ b/pom.xml @@ -142,6 +142,11 @@ <artifactId>gson</artifactId> <version>2.5</version> </dependency> + <dependency> + <groupId>com.github.slugify</groupId> + <artifactId>slugify</artifactId> + <version>2.1.4</version> + </dependency> </dependencies> <build> diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java index fa754bf08..dc67e1c1e 100644 --- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java +++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java @@ -5,6 +5,7 @@ package org.hbp.mip.controllers; +import com.github.slugify.Slugify; import io.swagger.annotations.*; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.Article; @@ -17,6 +18,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -102,7 +104,16 @@ public class ArticlesApi { if (article.getStatus().equals("published")) { article.setPublishedAt(new Date()); } - article.setSlug(article.getTitle().toLowerCase().replaceAll(" ","_")); + + Slugify slg = null; + try { + slg = new Slugify(); + } catch (IOException e) { + e.printStackTrace(); + } + String slug = slg.slugify(article.getTitle()); + + article.setSlug(slug); article.setCreatedBy(user); Session session = HibernateUtil.getSessionFactory().getCurrentSession(); diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java index f930e7a55..ba4ae5e8f 100644 --- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java @@ -4,6 +4,7 @@ package org.hbp.mip.controllers; +import com.github.slugify.Slugify; import io.swagger.annotations.*; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.*; @@ -16,6 +17,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -101,7 +103,15 @@ public class ModelsApi { User user = mipApplication.getUser(); - model.setSlug(model.getConfig().getTitle().get("text").toLowerCase()); + Slugify slg = null; + try { + slg = new Slugify(); + } catch (IOException e) { + e.printStackTrace(); + } + String slug = slg.slugify(model.getConfig().getTitle().get("text")); + + model.setSlug(slug); model.setTitle(model.getConfig().getTitle().get("text")); model.setValid(true); model.setCreatedBy(user); -- GitLab