public static DrawBuilder builder() { return new DrawBuilder(); }
public DrawResponse(Draw draw) { this.date = draw.getDate(); this.numbers = new HashSet<Integer>(draw.getNumbers()); }
public static Draw drawNumbers(LocalDate date) { Random random = new Random(date.toEpochDay()); Draw.DrawBuilder builder = Draw.builder().withDate(date); do { Integer number = random.nextInt(MAX_NUMBER_IN_DRAW + 1); if (number < MIN_NUMBER_IN_DRAW) { continue; } if (builder.contains(number)) { continue; } builder.withNumber(number); } while (!builder.isComplete()); return builder.build(); } }
@POST @Produces(MediaType.APPLICATION_JSON) @RolesAllowed("user") public DrawResponse draw(@Valid DrawRequest input) { return new DrawResponse(DrawingService.drawNumbers(input.getDate())); }
public Draw build() { if (numbers.size() != DRAW_SIZE) { throw new IllegalStateException("you need " + DRAW_SIZE + " numbers in a draw!"); } return new Draw(date, numbers); }
@POST @Produces(MediaType.APPLICATION_JSON) @RolesAllowed("user") public DrawResponse draw(@Valid DrawRequest input, @Auth User user) { return new DrawResponse(DrawingService.drawNumbers(input.getDate())); }
public DrawResponse(Draw draw) { this.date = draw.getDate(); this.numbers = new HashSet<Integer>(draw.getNumbers()); }
@POST @Path("/draw") @RolesAllowed("user") public DrawView draw(@FormParam("date") String dateAsString) { KeycloakSecurityContext session = (KeycloakSecurityContext) request.getAttribute(KeycloakSecurityContext.class.getName()); DrawBean bean = new DrawBean(); LocalDate date = LocalDate.parse(dateAsString); bean.setDraw(DrawingService.drawNumbers(date)); DrawView view = new DrawView(bean); bean.setIdToken(session.getIdToken()); return view; }
@POST @Path("/draw") @RolesAllowed("user") public DrawView draw(@FormParam("date") String dateAsString, @Auth User auth) { // <1> DrawBean bean = new DrawBean(); LocalDate date = LocalDate.parse(dateAsString); bean.setDraw(DrawingService.drawNumbers(date)); DrawView view = new DrawView(bean); bean.setName(auth.getName()); return view; }