From a4eab715e9f43341a3b259d3a2ddbef31e4713c1 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Wed, 18 Mar 2020 01:01:06 +0100 Subject: [PATCH] Update request mappings to use the new builder --- build.gradle | 1 + .../icaotix/controller/DefaultController.java | 48 +++++++++++++++++-- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 8ece9a9..d969733 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'com.google.code.gson:gson:2.8.6' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } diff --git a/src/main/java/de/icaotix/controller/DefaultController.java b/src/main/java/de/icaotix/controller/DefaultController.java index 2771286..5bd9528 100644 --- a/src/main/java/de/icaotix/controller/DefaultController.java +++ b/src/main/java/de/icaotix/controller/DefaultController.java @@ -1,19 +1,57 @@ package de.icaotix.controller; -import org.springframework.web.bind.annotation.RestController; +import de.icaotix.generator.PasswordBuilder; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; @RestController public class DefaultController { @RequestMapping("/") - public String index() { - return "Greetings from Spring Boot, also from a Docker Container from Port 80!"; + public Map index() { + + Map map = new HashMap<>(); + map.put("name", "PasswordAPI"); + map.put("endpoint", "/api"); + + Map params = new HashMap<>(); + params.put("length", "int"); + params.put("upper", "[on | off]"); + params.put("lower", "[on | off]"); + params.put("number", "[on | off]"); + params.put("special", "[on | off]"); + params.put("exclude", "string"); + params.put("repeat", "int"); + + map.put("params", params); + return map; } + // https://passwordwolf.com/?length=8&upper=off&lower=off&special=off&exclude=012345&repeat=20 @RequestMapping("/api") - public String standard() { - return "password"; + public LinkedList standard( + @RequestParam(required = false, defaultValue = "8") int length, + @RequestParam(required = false, defaultValue = "on") String upper, + @RequestParam(required = false, defaultValue = "on") String lower, + @RequestParam(required = false, defaultValue = "on") String number, + @RequestParam(required = false, defaultValue = "off") String special, + @RequestParam(required = false, defaultValue = "") String exclude, + @RequestParam(required = false, defaultValue = "1") int repeat) { + + return new PasswordBuilder() + .setLength(length) + .useUppercase(upper.equals("on")) + .useLowercase(lower.equals("on")) + .useNumbers(number.equals("on")) + .useSpecial(special.equals("on")) + .setExcludes(exclude) + .setRepeat(repeat) + .generate(); } } \ No newline at end of file