Advertisement
Guest User

RestMethods

a guest
Dec 11th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.14 KB | None | 0 0
  1. package rest;
  2. import data.*;
  3.  
  4. import javax.ws.rs.*;
  5. import javax.ws.rs.core.MediaType;
  6. import javax.ws.rs.core.Response;
  7. import java.net.URI;
  8. import java.net.URISyntaxException;
  9. import java.sql.Driver;
  10. import java.sql.SQLException;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13.  
  14. @Path("admin")
  15. public class RestMethods {
  16.  
  17. private String dbConnectionString = "jdbc:mysql://localhost:3306/?serverTimezone=CET&useSSL=false&allowPublicKeyRetrieval=true";
  18. private String dbUsername = "root";
  19. private String dbPassword = "rppm";
  20. private String dbName = "assignment3_db";
  21.  
  22. @Path("addCountry")
  23. @POST
  24. @Produces(MediaType.APPLICATION_JSON)
  25. @Consumes(MediaType.APPLICATION_JSON)
  26. public Response addCountry(String countryName) throws URISyntaxException, SQLException, ReflectiveOperationException {
  27. if(countryName == null || countryName.equals("")){
  28. return Response.status(400).entity("Empty country name!").build();
  29. }
  30. System.out.println("[ADD COUNTRY] "+ countryName);
  31. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  32. db.openConnection();
  33. db.createDatabase(dbName);
  34. db.createTable(Country.class);
  35. db.insertObj(new Country(countryName));
  36. db.closeConnection();
  37. System.out.println("---- End method ----");
  38. return Response.created(new URI("/admin/"+countryName)).build();
  39. }
  40.  
  41. @Path("listCountries")
  42. @GET
  43. @Produces(MediaType.APPLICATION_JSON)
  44. public List<String> listCountries() throws SQLException, ReflectiveOperationException {
  45. System.out.println("[LIST COUNTRIES]");
  46. List<String> list = new ArrayList<>();
  47. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  48. db.openConnection();
  49. db.createDatabase(dbName);
  50. List<Country> countryList = db.<Country>queryAll(Country.class);
  51. System.out.println(countryList);
  52. for (int i=0; i<countryList.size(); i++){
  53. //System.out.println("teste "+countryList.get(i).getName());
  54. list.add(countryList.get(i).getName());
  55. }
  56. db.closeConnection();
  57. System.out.println("---- End method ----");
  58. return list;
  59. }
  60.  
  61. @Path("addItem")
  62. @POST
  63. @Produces(MediaType.APPLICATION_JSON)
  64. @Consumes(MediaType.APPLICATION_JSON)
  65. public Response addItem(String itemName) throws URISyntaxException, SQLException, ReflectiveOperationException {
  66. System.out.println("[ADD ITEM]");
  67. if(itemName == null || itemName.equals("")){
  68. return Response.status(400).entity("Empty item name!").build();
  69. }
  70. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  71. db.openConnection();
  72. db.createDatabase(dbName);
  73. db.insertObj(new Item(itemName));
  74. db.closeConnection();
  75. System.out.println("---- End method ----");
  76. return Response.created(new URI("/admin/"+itemName)).build();
  77. }
  78.  
  79. @Path("listItems")
  80. @GET
  81. @Produces(MediaType.APPLICATION_JSON)
  82. public List<String> listItems() throws SQLException, ReflectiveOperationException {
  83. System.out.println("[LIST ITEMS]");
  84. List<String> list = new ArrayList<>();
  85. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  86. db.openConnection();
  87. db.createDatabase(dbName);
  88. List<Item> itemList = db.<Item>queryAll(Item.class);
  89. System.out.println(itemList);
  90. for (int i=0; i<itemList.size(); i++){
  91. // System.out.println("teste "+itemList.get(i).getName());
  92. list.add(itemList.get(i).getName());
  93. }
  94. System.out.println("---- End method ----");
  95. db.closeConnection();
  96. return list;
  97. }
  98.  
  99. @Path("listRevenuePerItem")
  100. @GET
  101. @Produces(MediaType.APPLICATION_JSON)
  102. public List<Integer> listRevenuePerItem() throws SQLException, ReflectiveOperationException {
  103. System.out.println("[LIST REVENUE]");
  104. List<Integer> list = new ArrayList<>();
  105. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  106. db.openConnection();
  107. db.createDatabase(dbName);
  108. List<Sale> saleList = db.<Sale>queryAll(Sale.class);
  109. List<Item> itemList = db.<Item>queryAll(Item.class);
  110. // System.out.println(saleList);
  111. int counter;
  112. for (Item i : itemList){
  113. counter = 0;
  114. for (Sale s : saleList){
  115. // System.out.println(i.getName());
  116. // System.out.println(s.getItemName());
  117. if(i.getName().equals(s.getItemName())){
  118. counter += (s.getItemPrice() * s.getNumberUnits());
  119. }
  120. }
  121. list.add(counter);
  122. }
  123. System.out.println("---- End method ----");
  124. db.closeConnection();
  125. return list;
  126. }
  127.  
  128. @Path("listExpensePerItem")
  129. @GET
  130. @Produces(MediaType.APPLICATION_JSON)
  131. public List<Integer> listExpensePerItem() throws SQLException, ReflectiveOperationException {
  132. System.out.println("[LIST EXPENSE]");
  133. List<Integer> list = new ArrayList<>();
  134. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  135. db.openConnection();
  136. db.createDatabase(dbName);
  137. List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
  138. List<Item> itemList = db.<Item>queryAll(Item.class);
  139. // System.out.println(saleList);
  140. int counter;
  141. for (Item i : itemList){
  142. counter = 0;
  143. for (Purchase p : purchaseList){
  144. // System.out.println(i.getName());
  145. // System.out.println(s.getItemName());
  146. if(i.getName().equals(p.getItemName())){
  147. counter += (p.getItemPrice() * p.getNumberUnits());
  148. }
  149. }
  150. list.add(counter);
  151. }
  152. System.out.println("---- End method ----");
  153. db.closeConnection();
  154. return list;
  155. }
  156.  
  157. @Path("listAvgExpensePerItem")
  158. @GET
  159. @Produces(MediaType.APPLICATION_JSON)
  160. public List<Integer> listAvgExpensePerItem() throws SQLException, ReflectiveOperationException {
  161. System.out.println("[LIST AVG EXPENSE]");
  162. List<Integer> list = new ArrayList<>();
  163. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  164. db.openConnection();
  165. db.createDatabase(dbName);
  166. List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
  167. List<Item> itemList = db.<Item>queryAll(Item.class);
  168.  
  169. int counter, countLen;
  170. for (Item i : itemList){
  171. counter = 0;
  172. countLen = 0;
  173. for (Purchase p : purchaseList){
  174. // System.out.println(i.getName());
  175. // System.out.println(s.getItemName());
  176. if(i.getName().equals(p.getItemName())){
  177. counter += (p.getItemPrice() * p.getNumberUnits());
  178. countLen++;
  179. }
  180. }
  181. if(countLen!=0)
  182. list.add(counter/countLen);
  183. else
  184. list.add(0);
  185. }
  186. System.out.println("---- End method ----");
  187. db.closeConnection();
  188. return list;
  189. }
  190.  
  191. @Path("listAvgExpense")
  192. @GET
  193. @Produces(MediaType.APPLICATION_JSON)
  194. public int listAvgExpense() throws SQLException, ReflectiveOperationException {
  195. System.out.println("[LIST AVG EXPENSE]");
  196. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  197. db.openConnection();
  198. db.createDatabase(dbName);
  199. List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
  200.  
  201. int counter = 0;
  202. for (Purchase p : purchaseList){
  203. counter += (p.getItemPrice() * p.getNumberUnits());
  204. }
  205. System.out.println("---- End method ----");
  206. db.closeConnection();
  207. return counter/purchaseList.size();
  208. }
  209.  
  210. @Path("listRevenue")
  211. @GET
  212. @Produces(MediaType.APPLICATION_JSON)
  213. public List<SaleBean> listRevenue() throws SQLException, ReflectiveOperationException {
  214. System.out.println("[LIST REVENUE]");
  215. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  216. db.openConnection();
  217. db.createDatabase(dbName);
  218. List<Sale> saleList = db.<Sale>queryAll(Sale.class);
  219. List<SaleBean> retSaleList = new ArrayList<>();
  220. for (Sale s : saleList){
  221. retSaleList.add(new SaleBean(s.getItemName(),s.getItemPrice(),s.getNumberUnits(),s.getCountryName()));
  222. }
  223. System.out.println("---- End method ----");
  224. db.closeConnection();
  225. return retSaleList;
  226. }
  227.  
  228. @Path("hourRevenue")
  229. @GET
  230. @Produces(MediaType.APPLICATION_JSON)
  231. public int hourRevenue() throws SQLException, ReflectiveOperationException {
  232. System.out.println("[HOUR REVENUE]");
  233. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  234. db.openConnection();
  235. db.createDatabase(dbName);
  236. List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
  237. System.out.println("---- End method ----");
  238. db.closeConnection();
  239. return list.get(0).getTotalRevenue();
  240. }
  241.  
  242. @Path("hourExpense")
  243. @GET
  244. @Produces(MediaType.APPLICATION_JSON)
  245. public int hourExpense() throws SQLException, ReflectiveOperationException {
  246. System.out.println("[HOUR EXPENSE]");
  247. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  248. db.openConnection();
  249. db.createDatabase(dbName);
  250. List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
  251. System.out.println("---- End method ----");
  252. db.closeConnection();
  253. return list.get(0).getTotalExpense();
  254. }
  255.  
  256. @Path("hourProfit")
  257. @GET
  258. @Produces(MediaType.APPLICATION_JSON)
  259. public int hourProfit() throws SQLException, ReflectiveOperationException {
  260. System.out.println("[HOUR PROFIT]");
  261. DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
  262. db.openConnection();
  263. db.createDatabase(dbName);
  264. List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
  265. System.out.println("---- End method ----");
  266. db.closeConnection();
  267. return list.get(0).getTotalProfit();
  268. }
  269. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement