diff --git a/.gitignore b/.gitignore index a1c2a238a..549e00a2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,33 @@ -# Compiled class file -*.class +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ -# Log file -*.log +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache -# BlueJ files -*.ctxt +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr -# Mobile Tools for Java (J2ME) -.mtj.tmp/ +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +### VS Code ### +.vscode/ diff --git a/src/main/java/guru/springframework/chucknorris/controllers/JokeController.java b/src/main/java/guru/springframework/chucknorris/controllers/JokeController.java new file mode 100644 index 000000000..05c0bfc40 --- /dev/null +++ b/src/main/java/guru/springframework/chucknorris/controllers/JokeController.java @@ -0,0 +1,23 @@ +package guru.springframework.chucknorris.controllers; + +import guru.springframework.chucknorris.services.JokeService; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class JokeController { + + private final JokeService jokeService; + + public JokeController(JokeService jokeService) { + this.jokeService = jokeService; + } + + @RequestMapping({"/", ""}) + public String showJoke(Model model) { + model.addAttribute("joke", jokeService.getJoke()); + + return "index"; + } +} diff --git a/src/main/java/guru/springframework/chucknorris/services/JokeService.java b/src/main/java/guru/springframework/chucknorris/services/JokeService.java new file mode 100644 index 000000000..1b90b7708 --- /dev/null +++ b/src/main/java/guru/springframework/chucknorris/services/JokeService.java @@ -0,0 +1,6 @@ +package guru.springframework.chucknorris.services; + +public interface JokeService { + + String getJoke(); +} diff --git a/src/main/java/guru/springframework/chucknorris/services/JokeServiceImpl.java b/src/main/java/guru/springframework/chucknorris/services/JokeServiceImpl.java new file mode 100644 index 000000000..ad6164169 --- /dev/null +++ b/src/main/java/guru/springframework/chucknorris/services/JokeServiceImpl.java @@ -0,0 +1,19 @@ +package guru.springframework.chucknorris.services; + +import guru.springframework.norris.chuck.ChuckNorrisQuotes; +import org.springframework.stereotype.Service; + +@Service +public class JokeServiceImpl implements JokeService { + + private final ChuckNorrisQuotes chuckNorrisQuotes; + + public JokeServiceImpl() { + this.chuckNorrisQuotes = new ChuckNorrisQuotes(); + } + + @Override + public String getJoke() { + return chuckNorrisQuotes.getRandomQuote(); + } +} diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 000000000..8caac625c --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,11 @@ + + + + + Chuck Norris Jokes + + +

Chuck Norris Joke

+ + + \ No newline at end of file