Advertisement
Guest User

Untitled

a guest
Apr 18th, 2018
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.46 KB | None | 0 0
  1. @RestController
  2. @RequestMapping("/bankclients")
  3. public class BankClientRestController {
  4.  
  5.     @RequestMapping(method = RequestMethod.GET, value = "/all")
  6.     public List<BankClientBean> getAll() {
  7.  
  8.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  9.         clients.add(new BankClientBean(1, "Petar", "Perić", "pero@uns.ac.rs", 1975, null));
  10.         clients.add(new BankClientBean(2, "Jovana", "Jović", "jovana@uns.ac.rs", 1980, null));
  11.         clients.add(new BankClientBean(3, "Angelina", "Vujanović", "avujanovic@uns.ac.rs", 1993, null));
  12.  
  13.         return clients;
  14.  
  15.     }
  16.  
  17.  
  18.     @RequestMapping(method = RequestMethod.GET, value = "name/{name}")
  19.     public BankClientBean getByName(@PathVariable String name) {
  20.         if(name.equals("Angelina"))
  21.             return new BankClientBean(3, "Angelina", "Vujanović", "avujanovic@uns.ac.rs", 1993, null);
  22.         else
  23.             return null;
  24.     }
  25.  
  26.  
  27.  
  28.     protected List<BankClientBean> getDB() {
  29.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  30.         clients.add(new BankClientBean(1, "Milan", "Celikovic", null, 1975, null, "Beograd"));
  31.         clients.add(new BankClientBean(2, "Vladimir", "Dimitrieski", "dimitrieski@uns.ac.rs", 1982, null, "Novi Sad"));
  32.         clients.add(new BankClientBean(3, "Angelina", "Vujanović", "avujanovic@uns.ac.rs", 1993, null, "Sabac"));
  33.         return clients;
  34.     }
  35.  
  36.  
  37.     @RequestMapping(method = RequestMethod.GET, value = "/{clientId}")
  38.     public BankClientBean getById(@PathVariable String clientId) {
  39.         for(BankClientBean bcb : getDB())
  40.             if(bcb.getId().equals(Integer.parseInt(clientId)))
  41.                 return bcb;
  42.         return new BankClientBean();
  43.     }
  44.  
  45.  
  46.     @RequestMapping(method = RequestMethod.POST)
  47.     public String add(@RequestBody BankClientBean client) {
  48.         System.out.println(client.getName().concat(" ").concat(client.getSurname()));
  49.         return "New client added";
  50.     }
  51.  
  52.     @RequestMapping(method = RequestMethod.PUT, value = "/{clientId}")
  53.     public BankClientBean modify(@PathVariable String clientId, @RequestBody BankClientBean client) {
  54.         BankClientBean bcb = new BankClientBean(1, "Milan", "Celikovic", "milancel@uns.ac.rs", 1975, null);
  55.         if(clientId.equals("1")) {
  56.             bcb.setName(client.getName());
  57.             bcb.setSurname(client.getSurname());
  58.             bcb.setEmail(client.getEmail());
  59.             return bcb;
  60.         } else
  61.             return null;
  62.     }
  63.  
  64.  
  65.     @RequestMapping(method = RequestMethod.DELETE, value = "/{clientId}")
  66.     public BankClientBean delete(@PathVariable String clientId) {
  67.         for(BankClientBean bcb : getDB())
  68.             if(bcb.getId().equals(Integer.parseInt(clientId))) {
  69.                 getDB().remove(bcb);
  70.                 return bcb;
  71.             }
  72.         return null;
  73.     }
  74.  
  75.  
  76.     @RequestMapping(method = RequestMethod.GET, value = "/client")
  77.     public BankClientBean getByNameSurname(@RequestParam("name") String
  78.             name, @RequestParam("surname") String surname) {
  79.         if(name.equals("Milan") && surname.equals("Celikovic"))
  80.             return new BankClientBean(1, "Milan", "Celikovic", "milancel@uns.ac.rs", 1975, null);
  81.         else
  82.             return null;
  83.     }
  84.  
  85.  
  86.  
  87.     // 1.1 endpoint koji iz liste klijenata banke uzima samo email adrese svih klijenata i vraća listu email adresa
  88.     @RequestMapping(method = RequestMethod.GET, value = "/emails")
  89.     public List<String> getByEmails() {
  90.         List<String> email = new ArrayList<String>();
  91.         for(BankClientBean tmp : getDB()) {
  92.             email.add(tmp.getEmail());
  93.         }
  94.         return email;
  95.     }
  96.  
  97.  
  98.  
  99.     // 1.1 ver2 endpoint koji iz liste klijenata banke uzima samo email adrese svih klijenata i vraća listu email adresa
  100.     @RequestMapping(method = RequestMethod.GET, value = "/emails2")
  101.     public List<String> getByEmails2() {
  102.         List<String> emails2 = new ArrayList<String>();
  103.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  104.         clients = getDB();
  105.  
  106.         for(int i = 0; i < clients.size(); i++) {
  107.             emails2.add(clients.get(i).getEmail());
  108.         }
  109.         return emails2;
  110.     }
  111.  
  112.  
  113.  
  114.  
  115.     // 1.2 endpoint koji vraća listu koja sadrži imena klijenata, čije ime počinje na slovo koje je prosleđeno kao parametar
  116.     @RequestMapping(method = RequestMethod.GET, value = "/clients/{firstLetter}")
  117.     public List<String> getClientsFirstLetter(@PathVariable String firstLetter) {
  118.         List<String> names = new ArrayList<String>();
  119.         for(BankClientBean tmp : getDB()) {
  120.             if(tmp.getName().substring(0, 1).equalsIgnoreCase(firstLetter)){
  121.                 names.add(tmp.getName());
  122.             }
  123.         }
  124.         return names;
  125.     }
  126.  
  127.  
  128.     // 1.3 endpoint koji vraća listu koja sadrži imena i prezimena klijenata, čije ime počinje na slovo
  129.     // koje je prosleđeno kao parametar i čije    prezime počinje na slovo koje je prosleđeno kao parametar
  130.     @RequestMapping(method = RequestMethod.GET, value = "/clients/firstLetters")
  131.     public List<String> getClientsNameSurname(@RequestParam("firstLetterName") String
  132.             nameLetter, @RequestParam("firstLetterSurname") String surnameLetter) {
  133.  
  134.         List<String> names = new ArrayList<String>();
  135.  
  136.         for(BankClientBean tmp : getDB()) {
  137.             if(tmp.getName().substring(0, 1).equalsIgnoreCase(nameLetter) && tmp.getSurname().substring(0, 1).equalsIgnoreCase(surnameLetter)) {
  138.                 String nameAndSurname=(tmp.getName().concat(" ")).concat(tmp.getSurname());
  139.                 names.add(nameAndSurname);
  140.  
  141.             }
  142.  
  143.         }
  144.         return names;
  145.     }
  146.  
  147.  
  148.  
  149.  
  150.     // 1.4 endpoint koji vraća listu koja sadrži imena klijenata, koja su sortirana u redosledu koji je prosleđen kao parameter
  151.     @RequestMapping(method = RequestMethod.GET, value = "/clients/sort/{order}")
  152.     public List<String> getSorting(@PathVariable String order) {
  153.  
  154.         List<String> names = new ArrayList<String>();
  155.  
  156.         for(BankClientBean tmp : getDB()) {
  157.             names.add(tmp.getName());
  158.         }
  159.  
  160.         if(order.equalsIgnoreCase("a")) {
  161.             Collections.sort(names);
  162.         }
  163.  
  164.         if(order.equalsIgnoreCase("d")) {
  165.             Collections.sort(names, Collections.reverseOrder());
  166.         }
  167.  
  168.         return names;
  169.     }
  170.  
  171.  
  172.  
  173.  
  174.     // 2.1 endpoint koji u listi klijenata banke, svakom klijentu, postavlja
  175.     // polje bonitet na ‘P’ (pozitivan) ako je klijent mlađi od 65 godina ili
  176.     // ‘N’ negativan ako je klijent stariji od 65 godina
  177.     @RequestMapping(method = RequestMethod.GET, value = "/clients/bonitet")
  178.     public List<BankClientBean> setClientsBonitet() {
  179.  
  180.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  181.         clients = getDB();
  182.  
  183.         List<BankClientBean> clients2 = new ArrayList<BankClientBean>();
  184.  
  185.  
  186.         // ovo bas nije tacno jer ne racunamo stvarne godine ... vise kao primer
  187.  
  188.         for(BankClientBean tmp : getDB()) {
  189.             if(tmp.getDatumRodjenja() > 65) {
  190.                 tmp.setBonitet('N');
  191.                 clients2.add(tmp);
  192.  
  193.             } if(tmp.getDatumRodjenja() < 65) {
  194.                 tmp.setBonitet('P');
  195.                 clients2.add(tmp);
  196.             }
  197.         }
  198.         return clients2;
  199.     }
  200.  
  201.  
  202.  
  203.  
  204.     /* 2.2 endpoint koji briše klijenta iz liste klijenta ukoliko klijent nema
  205.        jednu od vrednosti: ime, prezime, email */
  206.     @RequestMapping(method = RequestMethod.DELETE, value = "/clients/delete")
  207.     public List<BankClientBean> deleteClients() {
  208.  
  209.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  210.         clients = getDB();
  211.  
  212.         List<BankClientBean> clients2 = new ArrayList<BankClientBean>();
  213.  
  214.         for(BankClientBean tmp : clients) {
  215.             if(tmp.getName() == null || tmp.getSurname() == null || tmp.getEmail() == null) {
  216.                 tmp = null;
  217.             } else {
  218.                 clients2.add(tmp);
  219.             }
  220.         }
  221.  
  222.         return clients2;
  223.     }
  224.  
  225.  
  226.  
  227.     /* 2.2 ver.2 endpoint koji briše klijenta iz liste klijenta ukoliko klijent nema
  228.        jednu od vrednosti: ime, prezime, email */
  229.     @RequestMapping(method = RequestMethod.DELETE, value = "/clients/delete2")
  230.     public BankClientBean deleteClients2() {
  231.  
  232.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  233.         clients = getDB();
  234.  
  235.  
  236.         for(BankClientBean tmp : clients) {
  237.             if(tmp.getName() == null || tmp.getSurname() == null || tmp.getEmail() == null) {
  238.                 clients.remove(tmp);   
  239.                 return tmp;
  240.             }
  241.             // verzija koja vraca obrisanog klijenta, a ako ga nema vraca null
  242.         }
  243.  
  244.         return null;
  245.     }
  246.  
  247.  
  248.  
  249.     /* 2.3 endpoint koji vraća ukupan broj klijenata u listi klijenata koji
  250.      imaju manje od broja godina koje je prosleđeno kao parametar */
  251.  
  252.     // u primeru sam stavio godiste, da ne komplikujem sa racunanjem godina
  253.     @RequestMapping(method = RequestMethod.GET, value = "/clients/countLess/{years}")
  254.     public Integer countLess(@PathVariable Integer years) {
  255.  
  256.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  257.         clients = getDB();
  258.  
  259.         int counter = 0;
  260.  
  261.         for(BankClientBean tmp : clients) {        
  262.             if (tmp.getDatumRodjenja() >= years) {  // obrnuta logika ... manje je starije
  263.                 counter++;
  264.             }
  265.         }
  266.         return counter;
  267.     }
  268.  
  269.  
  270.  
  271.     /* 2.4 endpoint koji racuna prosečan broj godina klijenata iz liste klijenata */
  272.     @RequestMapping(method = RequestMethod.GET, value = "/clients/averageYears")
  273.     public Double averageYears() {
  274.  
  275.         // racunamo u stvari prosek godista zbog jednostavnosti
  276.  
  277.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  278.         clients = getDB();
  279.  
  280.         Double avg = 0.0;
  281.         Double sum = 0.0;
  282.  
  283.         for (BankClientBean tmp : clients) {           
  284.             sum += tmp.getDatumRodjenja();
  285.         }
  286.  
  287.         avg = (Double) sum / clients.size();   
  288.  
  289.         return avg;
  290.     }
  291.  
  292.  
  293.  
  294.     /* 3.1 endpoint koji omogućuje izmenu mesta stanovanja klijenta
  295.         • putanja /clients/changelocation/{clientId}
  296.         • u klasu BankClientBean dodati atribut grad
  297.         • novu vrednost mesta stanovanja proslediti kao QueryParameter */
  298.  
  299.     @RequestMapping(method = RequestMethod.PUT, value = "/clients/changelocation/{clientId}")
  300.     public BankClientBean changeLocation(@PathVariable String clientId,
  301.             @RequestParam("city") String grad) {
  302.  
  303.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  304.         clients = getDB();
  305.  
  306.         for (BankClientBean tmp : clients) {   
  307.             if (tmp.getId().equals(Integer.parseInt(clientId))) {
  308.                 tmp.setGrad(grad);
  309.                 return tmp;
  310.             }
  311.         }
  312.  
  313.         return null;
  314.  
  315.     }
  316.  
  317.  
  318.     /* 3.2 endpoint koji vraća klijente banke koji žive u gradu koji je
  319.         prosleđen kao parametar
  320.         • putanja /clients/from/{city} */
  321.     @RequestMapping(method = RequestMethod.GET, value = "/clients/from/{city}")
  322.     public List<BankClientBean> cities(@PathVariable String city) {
  323.  
  324.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  325.         clients = getDB();
  326.  
  327.         List<BankClientBean> clients2 = new ArrayList<BankClientBean>();
  328.  
  329.         for (BankClientBean tmp : clients) {   
  330.             if (tmp.getGrad().equals(city)) {
  331.                 clients2.add(tmp);
  332.             }
  333.         }
  334.  
  335.         return clients2;
  336.  
  337.     }
  338.  
  339.  
  340.     /* 3.3 endpoint koji vraća klijente banke koji žive u gradu koji je
  341.         prosleđen kao parametar i čiji je broj godina ispod broja
  342.         prosleđenog kao drugi parametar
  343.         • putanja /clients/findByCityAndAge */
  344.     @RequestMapping(method = RequestMethod.GET, value = "/clients/findByCityAndAge")
  345.     public List<BankClientBean> citiesAndAges(@RequestParam("city") String grad,
  346.             @RequestParam("godine") String datumRodjenja) {
  347.  
  348.         // u primeru sam stavio godiste, da ne komplikujem sa racunanjem godina
  349.  
  350.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  351.         clients = getDB();
  352.  
  353.         List<BankClientBean> clients2 = new ArrayList<BankClientBean>();
  354.  
  355.         for (BankClientBean tmp : clients) {   
  356.             if (tmp.getGrad().equals(grad) && (tmp.getDatumRodjenja().equals(Integer.parseInt(datumRodjenja)))) {
  357.                 clients2.add(tmp);
  358.             }
  359.         }
  360.  
  361.         return clients2;
  362.  
  363.     }
  364.  
  365.  
  366.     // 4.0 ponovo odradjen , ali sa parametrima
  367.     // 2.1 endpoint koji u listi klijenata banke, svakom klijentu, postavlja
  368.     // polje bonitet na ‘P’ (pozitivan) ako je klijent mlađi od 65 godina ili
  369.     // ‘N’ negativan ako je klijent stariji od 65 godina
  370.     @RequestMapping(method = RequestMethod.PUT, value = "/clients/bonitetpar")
  371.     public List<BankClientBean> setClientsBonitetPar(@RequestParam("godine") String datumRodjenja) {
  372.  
  373.         List<BankClientBean> clients = new ArrayList<BankClientBean>();
  374.         clients = getDB();
  375.  
  376.         List<BankClientBean> clients2 = new ArrayList<BankClientBean>();
  377.  
  378.  
  379.         // ovo bas nije tacno jer ne racunamo stvarne godine ... vise kao primer
  380.  
  381.         for(BankClientBean tmp : getDB()) {
  382.             if(tmp.getDatumRodjenja() > Integer.parseInt(datumRodjenja)) {
  383.                 tmp.setBonitet('N');
  384.                 clients2.add(tmp);
  385.  
  386.             } if(tmp.getDatumRodjenja() < Integer.parseInt(datumRodjenja)) {
  387.                 tmp.setBonitet('P');
  388.                 clients2.add(tmp);
  389.             }
  390.         }
  391.         return clients2;
  392.     }
  393.  
  394.  
  395.  
  396.     /* 4.1 endpoint koji vraća „Hello yourName!“, gde yourName
  397.         prosleđeno kao parametar
  398.         • putanja /greetings/{name} */
  399.     @RequestMapping(method = RequestMethod.GET, value = "/greetings/{name}")
  400.     public String greetings(@PathVariable String name) {
  401.  
  402.         String greetings = "Hello " + name + "!";
  403.         return greetings;
  404.  
  405.     }
  406.  
  407.  
  408.  
  409.     /* 4.2 endpoint koji vraća sumu prvih n brojeva
  410.             • putanja /sumaNiza/{n} */
  411.     @RequestMapping(method = RequestMethod.GET, value = "/sumaNiza/{n}")
  412.     public Integer sum(@PathVariable int n) {
  413.  
  414.         Integer sum = 0;
  415.  
  416.         for (int i = 0; i <= n; i++) {
  417.             sum += i;
  418.         }
  419.         return sum;
  420.     }
  421.    
  422.    
  423.     /* 4.3 endpoint koji predstavlja englesko-srpski rečnik i koji za reč na
  424.         srpskom vrati odgovarajući prevod na engleski jezik
  425.         • putanja /recnik/{trazena_rec}
  426.         • DODATNO: ukoliko za traženu reč ne postoji prevod, tada ispisati „Rec
  427.         trazena_rec ne postoji u recniku.“ */
  428.     @RequestMapping(method = RequestMethod.GET, value = "/recnik/{trazena_rec}")
  429.     public Object recnik(@PathVariable String trazena_rec) {
  430.  
  431.         HashMap<String, String> recnik = new HashMap<String,String>();
  432.         recnik.put( "automobil", "car");
  433.         recnik.put( "kuca", "house");
  434.         recnik.put( "boja", "paint");
  435.         recnik.put( "levo", "left");
  436.         recnik.put( "svemir", "space");
  437.        
  438.        
  439.        
  440.         Object value = recnik.get(trazena_rec);
  441.        
  442.         if(value != null) {
  443.             return value;
  444.         } else {
  445.             return "Rec " + trazena_rec + " ne postoji u recniku";
  446.         }
  447.        
  448.  
  449.  
  450.     }
  451.    
  452.  
  453. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement