Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package rest;
- import data.*;
- import javax.ws.rs.*;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.sql.Driver;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- @Path("admin")
- public class RestMethods {
- private String dbConnectionString = "jdbc:mysql://localhost:3306/?serverTimezone=CET&useSSL=false&allowPublicKeyRetrieval=true";
- private String dbUsername = "root";
- private String dbPassword = "rppm";
- private String dbName = "assignment3_db";
- @Path("addCountry")
- @POST
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public Response addCountry(String countryName) throws URISyntaxException, SQLException, ReflectiveOperationException {
- if(countryName == null || countryName.equals("")){
- return Response.status(400).entity("Empty country name!").build();
- }
- System.out.println("[ADD COUNTRY] "+ countryName);
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- db.createTable(Country.class);
- db.insertObj(new Country(countryName));
- db.closeConnection();
- System.out.println("---- End method ----");
- return Response.created(new URI("/admin/"+countryName)).build();
- }
- @Path("listCountries")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<String> listCountries() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST COUNTRIES]");
- List<String> list = new ArrayList<>();
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Country> countryList = db.<Country>queryAll(Country.class);
- System.out.println(countryList);
- for (int i=0; i<countryList.size(); i++){
- //System.out.println("teste "+countryList.get(i).getName());
- list.add(countryList.get(i).getName());
- }
- db.closeConnection();
- System.out.println("---- End method ----");
- return list;
- }
- @Path("addItem")
- @POST
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public Response addItem(String itemName) throws URISyntaxException, SQLException, ReflectiveOperationException {
- System.out.println("[ADD ITEM]");
- if(itemName == null || itemName.equals("")){
- return Response.status(400).entity("Empty item name!").build();
- }
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- db.insertObj(new Item(itemName));
- db.closeConnection();
- System.out.println("---- End method ----");
- return Response.created(new URI("/admin/"+itemName)).build();
- }
- @Path("listItems")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<String> listItems() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST ITEMS]");
- List<String> list = new ArrayList<>();
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Item> itemList = db.<Item>queryAll(Item.class);
- System.out.println(itemList);
- for (int i=0; i<itemList.size(); i++){
- // System.out.println("teste "+itemList.get(i).getName());
- list.add(itemList.get(i).getName());
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return list;
- }
- @Path("listRevenuePerItem")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<Integer> listRevenuePerItem() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST REVENUE]");
- List<Integer> list = new ArrayList<>();
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Sale> saleList = db.<Sale>queryAll(Sale.class);
- List<Item> itemList = db.<Item>queryAll(Item.class);
- // System.out.println(saleList);
- int counter;
- for (Item i : itemList){
- counter = 0;
- for (Sale s : saleList){
- // System.out.println(i.getName());
- // System.out.println(s.getItemName());
- if(i.getName().equals(s.getItemName())){
- counter += (s.getItemPrice() * s.getNumberUnits());
- }
- }
- list.add(counter);
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return list;
- }
- @Path("listExpensePerItem")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<Integer> listExpensePerItem() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST EXPENSE]");
- List<Integer> list = new ArrayList<>();
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
- List<Item> itemList = db.<Item>queryAll(Item.class);
- // System.out.println(saleList);
- int counter;
- for (Item i : itemList){
- counter = 0;
- for (Purchase p : purchaseList){
- // System.out.println(i.getName());
- // System.out.println(s.getItemName());
- if(i.getName().equals(p.getItemName())){
- counter += (p.getItemPrice() * p.getNumberUnits());
- }
- }
- list.add(counter);
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return list;
- }
- @Path("listAvgExpensePerItem")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<Integer> listAvgExpensePerItem() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST AVG EXPENSE]");
- List<Integer> list = new ArrayList<>();
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
- List<Item> itemList = db.<Item>queryAll(Item.class);
- int counter, countLen;
- for (Item i : itemList){
- counter = 0;
- countLen = 0;
- for (Purchase p : purchaseList){
- // System.out.println(i.getName());
- // System.out.println(s.getItemName());
- if(i.getName().equals(p.getItemName())){
- counter += (p.getItemPrice() * p.getNumberUnits());
- countLen++;
- }
- }
- if(countLen!=0)
- list.add(counter/countLen);
- else
- list.add(0);
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return list;
- }
- @Path("listAvgExpense")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public int listAvgExpense() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST AVG EXPENSE]");
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Purchase> purchaseList = db.<Purchase>queryAll(Purchase.class);
- int counter = 0;
- for (Purchase p : purchaseList){
- counter += (p.getItemPrice() * p.getNumberUnits());
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return counter/purchaseList.size();
- }
- @Path("listRevenue")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public List<SaleBean> listRevenue() throws SQLException, ReflectiveOperationException {
- System.out.println("[LIST REVENUE]");
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<Sale> saleList = db.<Sale>queryAll(Sale.class);
- List<SaleBean> retSaleList = new ArrayList<>();
- for (Sale s : saleList){
- retSaleList.add(new SaleBean(s.getItemName(),s.getItemPrice(),s.getNumberUnits(),s.getCountryName()));
- }
- System.out.println("---- End method ----");
- db.closeConnection();
- return retSaleList;
- }
- @Path("hourRevenue")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public int hourRevenue() throws SQLException, ReflectiveOperationException {
- System.out.println("[HOUR REVENUE]");
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
- System.out.println("---- End method ----");
- db.closeConnection();
- return list.get(0).getTotalRevenue();
- }
- @Path("hourExpense")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public int hourExpense() throws SQLException, ReflectiveOperationException {
- System.out.println("[HOUR EXPENSE]");
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
- System.out.println("---- End method ----");
- db.closeConnection();
- return list.get(0).getTotalExpense();
- }
- @Path("hourProfit")
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public int hourProfit() throws SQLException, ReflectiveOperationException {
- System.out.println("[HOUR PROFIT]");
- DatabaseConnector db = new DatabaseConnector(Driver.class.getName(), this.dbConnectionString, this.dbUsername, this.dbPassword);
- db.openConnection();
- db.createDatabase(dbName);
- List<resultsTopic> list = db.<resultsTopic>queryAll(resultsTopic.class);
- System.out.println("---- End method ----");
- db.closeConnection();
- return list.get(0).getTotalProfit();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement