TSK-496 add REST endpoint validate-access-ids

This commit is contained in:
BerndBreier 2018-05-17 18:39:19 +02:00 committed by Holger Hagen
parent c5ff9ed8a8
commit 1c50d62885
3 changed files with 433 additions and 0 deletions

View File

@ -0,0 +1,78 @@
package pro.taskana.rest;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.context.annotation.Import;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.hateoas.hal.Jackson2HalModule;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import pro.taskana.rest.resource.AccessIdValidationResource;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = {"devMode=true"})
@Import(RestConfiguration.class)
public class AccessIdValidationControllerTest {
@LocalServerPort
int port;
@Test
public void testGetMatches() {
RestTemplate template = getRestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x");
HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<List<AccessIdValidationResource>> response = template.exchange(
"http://127.0.0.1:" + port + "/v1/validate-access-id?search=ali", HttpMethod.GET, request,
new ParameterizedTypeReference<List<AccessIdValidationResource>>() {
});
List<AccessIdValidationResource> body = response.getBody();
assertNotNull(body);
List<String> expectedIds = new ArrayList<>(Arrays.asList("user008", "user009", "user248"));
for (AccessIdValidationResource accessId : body) {
assertTrue(expectedIds.contains(accessId.getAccessId()));
}
}
/**
* Return a REST template which is capable of dealing with responses in HAL format
*
* @return RestTemplate
*/
private RestTemplate getRestTemplate() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.registerModule(new Jackson2HalModule());
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setSupportedMediaTypes(MediaType.parseMediaTypes("application/hal+json"));
converter.setObjectMapper(mapper);
RestTemplate template = new RestTemplate(Collections.<HttpMessageConverter<?>> singletonList(converter));
return template;
}
}

View File

@ -0,0 +1,317 @@
package pro.taskana.rest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.hateoas.config.EnableHypermediaSupport;
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import pro.taskana.rest.resource.AccessIdValidationResource;
/**
* Controller for access id validation.
*
* @author bbr
*/
@RestController
@EnableHypermediaSupport(type = HypermediaType.HAL)
@RequestMapping(path = "/v1/validate-access-id", produces = "application/hal+json")
public class AccessIdValidationController {
@GetMapping
public ResponseEntity<List<AccessIdValidationResource>> validateAccessIds(
@RequestParam(required = false) String search) {
return new ResponseEntity<>(findMatchingAccessIdValidationResources(search), HttpStatus.OK);
}
private List<AccessIdValidationResource> findMatchingAccessIdValidationResources(String searchFor) {
List<AccessIdValidationResource> result = accessIds.stream()
.filter(t -> (t.getName().toLowerCase().contains(searchFor.toLowerCase())
|| t.getAccessId().toLowerCase().contains(searchFor.toLowerCase())))
.collect(Collectors.toList());
return result;
}
private static List<AccessIdValidationResource> accessIds = new ArrayList<>(Arrays.asList(
new AccessIdValidationResource("Sirup, Aaron", "user001"),
new AccessIdValidationResource("Kahn, Ada", "user002"),
new AccessIdValidationResource("Lass, Ada", "user003"),
new AccessIdValidationResource("Tion, Addi", "user004"),
new AccessIdValidationResource("Lette, Adi", "user005"),
new AccessIdValidationResource("Native, Alter", "user006"),
new AccessIdValidationResource("Herum, Albert", "user007"),
new AccessIdValidationResource("Bert, Ali", "user008"),
new AccessIdValidationResource("Mente, Ali", "user009"),
new AccessIdValidationResource("Mater, Alma", "user010"),
new AccessIdValidationResource("Nach, Alma", "user011"),
new AccessIdValidationResource("Gehzauch, Anders", "user012"),
new AccessIdValidationResource("Theke, Andi", "user013"),
new AccessIdValidationResource("Kreuz, Andreas", "user014"),
new AccessIdValidationResource("Kette, Anka", "user015"),
new AccessIdValidationResource("Tiefsee, Anka", "user016"),
new AccessIdValidationResource("Fielmalz, Anke", "user017"),
new AccessIdValidationResource("Fassen, Ann", "user018"),
new AccessIdValidationResource("Probe, Ann", "user019"),
new AccessIdValidationResource("Bolika, Anna", "user020"),
new AccessIdValidationResource("Ecke, Anna", "user021"),
new AccessIdValidationResource("Hosi, Anna", "user022"),
new AccessIdValidationResource("Kronis-Tisch, Anna", "user023"),
new AccessIdValidationResource("Logie, Anna", "user024"),
new AccessIdValidationResource("Luehse, Anna", "user025"),
new AccessIdValidationResource("Nass, Anna", "user026"),
new AccessIdValidationResource("Thalb, Anna", "user027"),
new AccessIdValidationResource("Tomie, Anna", "user028"),
new AccessIdValidationResource("Donnich, Anne", "user029"),
new AccessIdValidationResource("Kaffek, Anne", "user030"),
new AccessIdValidationResource("Thek, Anne", "user031"),
new AccessIdValidationResource("Matoer, Anni", "user032"),
new AccessIdValidationResource("Ragentor, Ansgar", "user033"),
new AccessIdValidationResource("Stoteles, Ari", "user034"),
new AccessIdValidationResource("Thmetik, Ari", "user035"),
new AccessIdValidationResource("Nuehm, Arno", "user036"),
new AccessIdValidationResource("Schocke, Artie", "user037"),
new AccessIdValidationResource("Stoppel, Bart", "user038"),
new AccessIdValidationResource("Beitung, Bea", "user039"),
new AccessIdValidationResource("Ildich, Bea", "user040"),
new AccessIdValidationResource("Vista, Bella", "user041"),
new AccessIdValidationResource("Utzer, Ben", "user042"),
new AccessIdValidationResource("Zien, Ben", "user043"),
new AccessIdValidationResource("Stein, Bernd", "user044"),
new AccessIdValidationResource("Deramen, Bill", "user045"),
new AccessIdValidationResource("Honig, Bine", "user046"),
new AccessIdValidationResource("Densatz, Bo", "user047"),
new AccessIdValidationResource("Densee, Bo", "user048"),
new AccessIdValidationResource("Lerwagen, Bo", "user049"),
new AccessIdValidationResource("Tail, Bob", "user050"),
new AccessIdValidationResource("Ketta, Bruce", "user051"),
new AccessIdValidationResource("Terrie, Bud", "user052"),
new AccessIdValidationResource("Biener-Haken, Cara", "user053"),
new AccessIdValidationResource("Ass, Caro", "user054"),
new AccessIdValidationResource("Kaffee, Caro", "user055"),
new AccessIdValidationResource("Linger, Caro", "user056"),
new AccessIdValidationResource("tenSaft, Caro", "user057"),
new AccessIdValidationResource("Antheme, Chris", "user058"),
new AccessIdValidationResource("Baum, Chris", "user059"),
new AccessIdValidationResource("Tall, Chris", "user060"),
new AccessIdValidationResource("Reiniger, Claas", "user061"),
new AccessIdValidationResource("Grube, Claire", "user062"),
new AccessIdValidationResource("Fall, Clara", "user063"),
new AccessIdValidationResource("Korn, Clara", "user064"),
new AccessIdValidationResource("Lenriff, Cora", "user065"),
new AccessIdValidationResource("Schiert, Cora", "user066"),
new AccessIdValidationResource("Hose, Cord", "user067"),
new AccessIdValidationResource("Onbleu, Cord", "user068"),
new AccessIdValidationResource("Umkleide, Damon", "user069"),
new AccessIdValidationResource("Affier, Dean", "user070"),
new AccessIdValidationResource("Orm, Dean", "user071"),
new AccessIdValidationResource("Platz, Dennis", "user072"),
new AccessIdValidationResource("Milch, Dick", "user073"),
new AccessIdValidationResource("Mow, Dina", "user074"),
new AccessIdValidationResource("Keil, Donna", "user075"),
new AccessIdValidationResource("Littchen, Donna", "user076"),
new AccessIdValidationResource("Wetter, Donna", "user077"),
new AccessIdValidationResource("Was, Ed", "user078"),
new AccessIdValidationResource("Khar, Ede", "user079"),
new AccessIdValidationResource("Nut, Ella", "user080"),
new AccessIdValidationResource("Stisch, Ella", "user081"),
new AccessIdValidationResource("Diel, Emma", "user082"),
new AccessIdValidationResource("Herdamit, Emma", "user083"),
new AccessIdValidationResource("Mitter-Uhe, Emma", "user084"),
new AccessIdValidationResource("Tatt, Erich", "user085"),
new AccessIdValidationResource("Drigend, Ernie", "user086"),
new AccessIdValidationResource("Poly, Esther", "user087"),
new AccessIdValidationResource("Trautz, Eugen", "user088"),
new AccessIdValidationResource("Quiert, Eva", "user089"),
new AccessIdValidationResource("Inurlaub, Fatma", "user090"),
new AccessIdValidationResource("Land, Finn", "user091"),
new AccessIdValidationResource("Sternis, Finn", "user092"),
new AccessIdValidationResource("Furt, Frank", "user093"),
new AccessIdValidationResource("Reich, Frank", "user094"),
new AccessIdValidationResource("Iskaner, Franz", "user095"),
new AccessIdValidationResource("Nerr, Franziska", "user096"),
new AccessIdValidationResource("Zafen, Friedrich", "user097"),
new AccessIdValidationResource("Pomm, Fritz", "user098"),
new AccessIdValidationResource("deWegs, Gera", "user099"),
new AccessIdValidationResource("Staebe, Gitta", "user100"),
new AccessIdValidationResource("Zend, Glenn", "user101"),
new AccessIdValidationResource("Fisch, Grete", "user102"),
new AccessIdValidationResource("Zucker, Gus", "user103"),
new AccessIdValidationResource("Muhn, Hanni", "user104"),
new AccessIdValidationResource("Fermesse, Hanno", "user105"),
new AccessIdValidationResource("Aplast, Hans", "user106"),
new AccessIdValidationResource("Eart, Hans", "user107"),
new AccessIdValidationResource("Back, Hardy", "user108"),
new AccessIdValidationResource("Beau, Harry", "user110"),
new AccessIdValidationResource("Kraut, Heide", "user111"),
new AccessIdValidationResource("Witzka, Heide", "user112"),
new AccessIdValidationResource("Buchen, Hein", "user113"),
new AccessIdValidationResource("Lichkeit, Hein", "user114"),
new AccessIdValidationResource("Suchung, Hein", "user115"),
new AccessIdValidationResource("Ellmann, Heinz", "user116"),
new AccessIdValidationResource("Ketchup, Heinz", "user117"),
new AccessIdValidationResource("Zeim, Hilde", "user118"),
new AccessIdValidationResource("Bilien, Immo", "user119"),
new AccessIdValidationResource("Her, Inge", "user120"),
new AccessIdValidationResource("Wahrsam, Inge", "user121"),
new AccessIdValidationResource("Flamm, Ingo", "user122"),
new AccessIdValidationResource("Enzien, Ingrid", "user123"),
new AccessIdValidationResource("Rohsch, Inken", "user124"),
new AccessIdValidationResource("Ihr, Insa", "user125"),
new AccessIdValidationResource("Nerda, Iska", "user126"),
new AccessIdValidationResource("Eitz, Jens", "user127"),
new AccessIdValidationResource("Nastik, Jim", "user128"),
new AccessIdValidationResource("Gurt, Jo", "user129"),
new AccessIdValidationResource("Kurrth, Jo", "user130"),
new AccessIdValidationResource("Kolade, Joe", "user131"),
new AccessIdValidationResource("Iter, Johann", "user132"),
new AccessIdValidationResource("Tick, Joyce", "user133"),
new AccessIdValidationResource("Case, Justin", "user134"),
new AccessIdValidationResource("Time, Justin", "user135"),
new AccessIdValidationResource("Komp, Jutta", "user136"),
new AccessIdValidationResource("Mauer, Kai", "user137"),
new AccessIdValidationResource("Pirinja, Kai", "user138"),
new AccessIdValidationResource("Serpfalz, Kai", "user139"),
new AccessIdValidationResource("Auer, Karl", "user140"),
new AccessIdValidationResource("Ielauge, Karl", "user141"),
new AccessIdValidationResource("Ifornjen, Karl", "user142"),
new AccessIdValidationResource("Radi, Karl", "user143"),
new AccessIdValidationResource("Verti, Karl", "user144"),
new AccessIdValidationResource("Sery, Karo", "user145"),
new AccessIdValidationResource("Lisator, Katha", "user146"),
new AccessIdValidationResource("Flo, Kati", "user147"),
new AccessIdValidationResource("Schenn, Knut", "user148"),
new AccessIdValidationResource("Achse, Kurt", "user149"),
new AccessIdValidationResource("Zepause, Kurt", "user150"),
new AccessIdValidationResource("Zerr, Kurt", "user151"),
new AccessIdValidationResource("Reden, Lasse", "user152"),
new AccessIdValidationResource("Metten, Lee", "user153"),
new AccessIdValidationResource("Arm, Lene", "user154"),
new AccessIdValidationResource("Thur, Linnea", "user155"),
new AccessIdValidationResource("Bonn, Lisa", "user156"),
new AccessIdValidationResource("Sembourg, Luc", "user157"),
new AccessIdValidationResource("Rung, Lucky", "user158"),
new AccessIdValidationResource("Zafen, Ludwig", "user159"),
new AccessIdValidationResource("Hauden, Lukas", "user160"),
new AccessIdValidationResource("Hose, Lutz", "user161"),
new AccessIdValidationResource("Tablette, Lutz", "user162"),
new AccessIdValidationResource("Fehr, Luzie", "user163"),
new AccessIdValidationResource("Nalyse, Magda", "user164"),
new AccessIdValidationResource("Ehfer, Maik", "user165"),
new AccessIdValidationResource("Sehr, Malte", "user166"),
new AccessIdValidationResource("Thon, Mara", "user167"),
new AccessIdValidationResource("Quark, Marga", "user168"),
new AccessIdValidationResource("Nade, Marie", "user169"),
new AccessIdValidationResource("Niert, Marie", "user170"),
new AccessIdValidationResource("Neese, Mario", "user171"),
new AccessIdValidationResource("Nette, Marion", "user172"),
new AccessIdValidationResource("Nesium, Mark", "user173"),
new AccessIdValidationResource("Thalle, Mark", "user174"),
new AccessIdValidationResource("Diven, Marle", "user175"),
new AccessIdValidationResource("Fitz, Marle", "user176"),
new AccessIdValidationResource("Pfahl, Marta", "user177"),
new AccessIdValidationResource("Zorn, Martin", "user178"),
new AccessIdValidationResource("Krissmes, Mary", "user179"),
new AccessIdValidationResource("Jess, Matt", "user180"),
new AccessIdValidationResource("Strammer, Max", "user181"),
new AccessIdValidationResource("Mumm, Maxi", "user182"),
new AccessIdValidationResource("Morphose, Meta", "user183"),
new AccessIdValidationResource("Uh, Mia", "user184"),
new AccessIdValidationResource("Rofon, Mike", "user185"),
new AccessIdValidationResource("Rosoft, Mike", "user186"),
new AccessIdValidationResource("Liter, Milli", "user187"),
new AccessIdValidationResource("Thär, Milli", "user188"),
new AccessIdValidationResource("Welle, Mirko", "user189"),
new AccessIdValidationResource("Thorat, Mo", "user190"),
new AccessIdValidationResource("Thor, Moni", "user191"),
new AccessIdValidationResource("Kinolta, Monika", "user192"),
new AccessIdValidationResource("Mundhaar, Monika", "user193"),
new AccessIdValidationResource("Munter, Monika", "user194"),
new AccessIdValidationResource("Zwerg, Nat", "user195"),
new AccessIdValidationResource("Elmine, Nick", "user196"),
new AccessIdValidationResource("Thien, Niko", "user197"),
new AccessIdValidationResource("Pferd, Nils", "user198"),
new AccessIdValidationResource("Lerweise, Norma", "user199"),
new AccessIdValidationResource("Motor, Otto", "user200"),
new AccessIdValidationResource("Päde, Otto", "user201"),
new AccessIdValidationResource("Totol, Otto", "user202"),
new AccessIdValidationResource("Ahner, Paul", "user203"),
new AccessIdValidationResource("Nerr, Paula", "user204"),
new AccessIdValidationResource("Leum, Pedro", "user205"),
new AccessIdValidationResource("Imeter, Peer", "user206"),
new AccessIdValidationResource("Manent, Peer", "user207"),
new AccessIdValidationResource("Serkatze, Peer", "user208"),
new AccessIdValidationResource("Spektive, Peer", "user209"),
new AccessIdValidationResource("Gogisch, Peter", "user210"),
new AccessIdValidationResource("Hacke, Peter", "user211"),
new AccessIdValidationResource("Silje, Peter", "user212"),
new AccessIdValidationResource("Wagen, Peter", "user213"),
new AccessIdValidationResource("Harmonie, Phil", "user214"),
new AccessIdValidationResource("Ologie, Phil", "user215"),
new AccessIdValidationResource("Ihnen, Philip", "user216"),
new AccessIdValidationResource("Nist, Pia", "user217"),
new AccessIdValidationResource("Uto, Pia", "user218"),
new AccessIdValidationResource("Colada, Pina", "user219"),
new AccessIdValidationResource("Kothek, Pina", "user220"),
new AccessIdValidationResource("Toresk, Pit", "user221"),
new AccessIdValidationResource("Zar, Pit", "user222"),
new AccessIdValidationResource("Carbonat, Polly", "user223"),
new AccessIdValidationResource("Zeih, Polly", "user224"),
new AccessIdValidationResource("Vera, Prima", "user225"),
new AccessIdValidationResource("Tswan, Puh", "user226"),
new AccessIdValidationResource("Chen, Qu", "user227"),
new AccessIdValidationResource("Zufall, Rainer", "user228"),
new AccessIdValidationResource("Tenz, Reni", "user229"),
new AccessIdValidationResource("Lien, Rita", "user230"),
new AccessIdValidationResource("Sport, Rita", "user231"),
new AccessIdValidationResource("Held, Roman", "user232"),
new AccessIdValidationResource("Nenbrot, Rosi", "user233"),
new AccessIdValidationResource("Haar, Ross", "user234"),
new AccessIdValidationResource("Baer, Roy", "user235"),
new AccessIdValidationResource("Dick, Roy", "user236"),
new AccessIdValidationResource("Mente, Rudi", "user238"),
new AccessIdValidationResource("Enplaner, Ruth", "user239"),
new AccessIdValidationResource("Print, Ruth", "user240"),
new AccessIdValidationResource("Kommen, Ryan", "user241"),
new AccessIdValidationResource("Pler, Sam", "user242"),
new AccessIdValidationResource("Philo, Sophie", "user243"),
new AccessIdValidationResource("Mutter, Steve", "user244"),
new AccessIdValidationResource("Matisier, Stig", "user245"),
new AccessIdValidationResource("Transpor, Svea", "user246"),
new AccessIdValidationResource("Loniki, Tessa", "user247"),
new AccessIdValidationResource("Tralisch, Thea", "user248"),
new AccessIdValidationResource("Logie, Theo", "user249"),
new AccessIdValidationResource("Retisch, Theo", "user250"),
new AccessIdValidationResource("Ister, Thorn", "user251"),
new AccessIdValidationResource("Sitter, Till", "user252"),
new AccessIdValidationResource("Buktu, Tim", "user253"),
new AccessIdValidationResource("Beil, Timo", "user254"),
new AccessIdValidationResource("Ate, Tom", "user255"),
new AccessIdValidationResource("Riga, Toni", "user256"),
new AccessIdValidationResource("Pie, Udo", "user257"),
new AccessIdValidationResource("Russ, Ute", "user258"),
new AccessIdValidationResource("Aloe, Vera", "user261"),
new AccessIdValidationResource("Breden, Vera", "user262"),
new AccessIdValidationResource("Hausver, Walter", "user263"),
new AccessIdValidationResource("Lismus, Wanda", "user264"),
new AccessIdValidationResource("Schuh, Wanda", "user265"),
new AccessIdValidationResource("Pell, Wim", "user266"),
new AccessIdValidationResource("Rahm, Wolf", "user267"),
new AccessIdValidationResource("sachbearbeiter", "group01"), new AccessIdValidationResource("leben", "group02"),
new AccessIdValidationResource("chirurgie", "group03"), new AccessIdValidationResource("zahn", "group04"),
new AccessIdValidationResource("knie", "group05"), new AccessIdValidationResource("schaden", "group06"),
new AccessIdValidationResource("kapital", "group07"), new AccessIdValidationResource("ausland", "group08"),
new AccessIdValidationResource("teamlead", "group09"), new AccessIdValidationResource("gesundheit", "group10"),
new AccessIdValidationResource("vip", "group11"), new AccessIdValidationResource("manager", "group12"),
new AccessIdValidationResource("kfz", "group13"), new AccessIdValidationResource("haftpflicht", "group14"),
new AccessIdValidationResource("bauspar", "group15")));
}

View File

@ -0,0 +1,38 @@
package pro.taskana.rest.resource;
/**
* resource class for access id validation.
*
* @author bbr
*/
public class AccessIdValidationResource {
public String name;
public String accessId;
public AccessIdValidationResource() {
}
public AccessIdValidationResource(String name, String accessId) {
this.accessId = accessId;
this.name = name;
}
public String getAccessId() {
return accessId;
}
public void setAccessId(String accessId) {
this.accessId = accessId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}