ApplicationController.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package controllers;
  2. import interfaces.Constants;
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.List;
  6. import mangoo.io.routing.Response;
  7. import models.Fortune;
  8. import models.Message;
  9. import models.World;
  10. import services.DataService;
  11. import utils.RandomUtils;
  12. import com.google.inject.Inject;
  13. import com.google.inject.Singleton;
  14. @Singleton
  15. public class ApplicationController {
  16. @Inject
  17. private DataService dataService;
  18. public Response index() {
  19. return Response.withOk().andEmptyBody();
  20. }
  21. public Response json() {
  22. return Response.withOk().andJsonBody(new Message(Constants.HELLO_WORLD));
  23. }
  24. public Response db() {
  25. World world = dataService.findById(RandomUtils.getRandomId());
  26. return Response.withOk().andJsonBody(world);
  27. }
  28. public Response queries(String queries) {
  29. List<World> worlds = dataService.getWorlds(queries);
  30. return Response.withOk().andJsonBody(worlds);
  31. }
  32. public Response plaintext() {
  33. return Response.withOk().andTextBody(Constants.HELLO_WORLD);
  34. }
  35. public Response fortunes() {
  36. List<Fortune> fortunes = dataService.findAllFortunes();
  37. fortunes.add(new Fortune(0, Constants.FORTUNE_MESSAGE));
  38. Collections.sort(fortunes);
  39. return Response.withOk().andContent("fortunes", fortunes);
  40. }
  41. public Response updates(String queries) {
  42. List<World> worldUpdates = new ArrayList<World>();
  43. List<World> worlds = dataService.getWorlds(queries);
  44. for (World world : worlds) {
  45. int randomNumber = RandomUtils.getRandomId();
  46. world.setRandomnumber(randomNumber);
  47. dataService.save(world);
  48. worldUpdates.add(world);
  49. }
  50. return Response.withOk().andJsonBody(worldUpdates);
  51. }
  52. }