From afa58624f3aa38897e7024dc41fb5610535a1ed5 Mon Sep 17 00:00:00 2001 From: Terence21 Date: Mon, 16 Nov 2020 20:36:14 -0800 Subject: [PATCH 1/4] restructured sneaker controller and hello controller classes, and maniupulated database and endpoint to handle adding sneaker to user table --- .../{SneakerController.java => HelloController.java} | 0 .../sneakerinvetory/login/loginController.java | 11 ----------- 2 files changed, 11 deletions(-) rename sneaker-service/src/main/java/com/company/sneakerinvetory/{SneakerController.java => HelloController.java} (100%) diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/SneakerController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java similarity index 100% rename from sneaker-service/src/main/java/com/company/sneakerinvetory/SneakerController.java rename to sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/login/loginController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/login/loginController.java index 3d52ea2..95e2502 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/login/loginController.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/login/loginController.java @@ -84,17 +84,6 @@ public LoginResponse sessionResponse(@RequestBody String userID) throws SQLExcep return new LoginResponse(operation.querySessionID("NaN")); } - @ResponseBody - @RequestMapping(value = "/addSneaker", method = RequestMethod.POST) - public LoginResponse sessionResponse(@RequestBody Sneaker sneaker){ - DatabaseOperation operation = new DatabaseOperation(); - operation.createConnect(); - boolean createSneaker = operation.insertData(sneaker.getSneakerName(), sneaker.getSku(), sneaker.getSize(), sneaker.getDate(), sneaker.getPrice(), sneaker.getUserID()); - if (createSneaker){ - return new LoginResponse("SessionID"); - } - return new LoginResponse("NaN"); - } From 37b9c1b6f3e5ec7f20599298b7ee201ccefe3836 Mon Sep 17 00:00:00 2001 From: Terence21 Date: Mon, 16 Nov 2020 21:04:54 -0800 Subject: [PATCH 2/4] created editSneaker endpoint and modified editForm to match --- .../sneakerinvetory/HelloController.java | 2 +- .../MySQLConnction/DatabaseOperation.java | 47 +++++++++++-------- .../sneakerinvetory/sneaker/Sneaker.java | 23 ++++++--- .../sneaker/SneakerController.java | 34 ++++++++++++++ .../sneaker/SneakerResponse.java | 4 ++ 5 files changed, 82 insertions(+), 28 deletions(-) create mode 100644 sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java create mode 100644 sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java index 7851c8f..d80ba57 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/HelloController.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController -public class SneakerController { +public class HelloController { @RequestMapping(value="/", method= RequestMethod.GET) public String hello(){ diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/MySQLConnction/DatabaseOperation.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/MySQLConnction/DatabaseOperation.java index 64b8277..94ce49d 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/MySQLConnction/DatabaseOperation.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/MySQLConnction/DatabaseOperation.java @@ -28,7 +28,7 @@ public static void main(String[] args) { // main used for testing //System.out.println(database.editSize("tony",11.5,1)); // true if done //System.out.println(database.editPrice("tony",120,1)); // true if done //System.out.println(database.editDate("tony","2020/12/25",1)); // true if done YYYY/MM/DD - System.out.println(database.editForm(1,"Tims",null,"123shoe",11,null,101.67,"Tony")); + //System.out.println(database.editForm(1,"Tims",null,"123shoe",11,null,101.67,"Tony")); //-------------------------------------------------------------- database.closeConnection(); // log off } @@ -123,9 +123,8 @@ public boolean addUser(String userID, String password) { " shoeName VARCHAR(255) not NULL, " + " sku VARCHAR(255) not NULL, " + " size VARCHAR(255) not NULL, " + - " date VARCHAR(255) not NULL, " + " price VARCHAR(255) not NULL, " + - " user_id VARCHAR(20)," + + " user_id VARCHAR(20) not NULL," + " PRIMARY KEY (index_id),"+ " FOREIGN KEY ( user_id ) REFERENCES user_table (user_id))"); } catch(SQLException throwables){ throwables.printStackTrace();return false;} // this should never happen @@ -210,13 +209,14 @@ public String querySessionID(String userID){ } //---------------------------------------------------------------------------- inventory functions - public boolean insertData(String shoeName, String sku, String size , String date, String price, String userID) // first entry needs to be entered via this method + public boolean insertData(String shoeName, String sku, String size , String price, String userID) // first entry needs to be entered via this method { String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); - statement.executeUpdate("INSERT INTO "+ tableName + " "+ - "VALUES (" +shoeName+"','" +sku+"',"+size+",'"+date+"', "+price+",'"+userID+"')" ); + statement.executeUpdate("INSERT INTO "+ tableName + " (shoeName, sku, size, price, user_id) "+ + "VALUES ('" +shoeName+"', '" +sku+"', '"+size+"', '"+price+"', '"+userID+"' )" ); + }catch(SQLException throwables){ throwables.printStackTrace(); @@ -224,19 +224,26 @@ public boolean insertData(String shoeName, String sku, String size , String date return true; } - boolean editForm(int index, String brand, String model, String sku, double size , String date, double price, String userID) // edits rows that are already created, insert null/0 for unwanted string/number changes + public boolean editForm(String index, String shoeName, String sku, String size, String price, String userID){ + String tableName = userID.toLowerCase() + "_inventory"; + try { + statement = connect.createStatement(); + statement.executeUpdate("UPDATE "+ tableName + " SET shoeName = '" + shoeName + "', sku = '" + sku + "', size = '" + size + + "', price = '" + price + "' WHERE index_id = '" + index + "'"); + }catch(SQLException throwables){ + throwables.printStackTrace(); + return false;} + return true; + } + + /*public boolean editForm(String index, String sneakerName, String sku, String size , String date, double price, String userID) // edits rows that are already created, insert null/0 for unwanted string/number changes { int isDone = 0; //false if(brand != null){ editBrand(userID,brand,index); isDone++; } - - if(model != null){ - editModel(userID,model,index); - isDone++; - } - + if(sku != null){ editSKU(userID,sku,index); isDone++; @@ -259,9 +266,9 @@ boolean editForm(int index, String brand, String model, String sku, double size if(isDone>0){return true;} else {return false;} - } + }*/ - boolean editBrand( String userID, String brandName, int index) { + boolean editBrand( String userID, String brandName, String index) { String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); @@ -276,7 +283,7 @@ boolean editBrand( String userID, String brandName, int index) { } - boolean editModel(String userID, String model, int index){ + boolean editModel(String userID, String model, String index){ String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); @@ -290,7 +297,7 @@ boolean editModel(String userID, String model, int index){ } } - boolean editSKU(String userID, String sku, int index){ + boolean editSKU(String userID, String sku, String index){ String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); @@ -304,7 +311,7 @@ boolean editSKU(String userID, String sku, int index){ } } - boolean editSize(String userID, double size, int index){ + boolean editSize(String userID, String size, String index){ String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); @@ -318,7 +325,7 @@ boolean editSize(String userID, double size, int index){ } } - boolean editDate(String userID, String date, int index){ + boolean editDate(String userID, String date, String index){ String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); @@ -331,7 +338,7 @@ boolean editDate(String userID, String date, int index){ return false; }} - boolean editPrice(String userID, double price, int index){ + boolean editPrice(String userID, double price, String index){ String tableName = userID.toLowerCase() + "_inventory"; try { statement = connect.createStatement(); diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java index 8859311..a2bf7a2 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java @@ -1,27 +1,36 @@ package com.company.sneakerinvetory.sneaker; public class Sneaker { - String userID; + String index; + String id; String SneakerName; String Sku; String size; String date; String price; - public Sneaker(String userID, String sneakerName, String Sku, String size, String price){ - this.userID = userID; + public Sneaker(String id, String sneakerName, String Sku, String size, String price){ + this.id = id; this.SneakerName = sneakerName; this.Sku = Sku; this.size = size; this.price = price; } - public String getUserID() { - return userID; + public String getIndex() { + return index; } - public void setUserID(String userID) { - this.userID = userID; + public void setIndex(String index) { + this.index = index; + } + + public String getid() { + return id; + } + + public void setid(String id) { + this.id = id; } public String getSneakerName() { diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java new file mode 100644 index 0000000..4aa812b --- /dev/null +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java @@ -0,0 +1,34 @@ +package com.company.sneakerinvetory.sneaker; + +import com.company.sneakerinvetory.MySQLConnction.DatabaseOperation; +import com.company.sneakerinvetory.login.LoginResponse; +import org.springframework.web.bind.annotation.*; + +//curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data '{ "index": "1", "id" : "tester", "SneakerName" : "yeezy 350 v2", "Sku" : "fu9006", "size" : "11", "price" : "$350" }' "http://localhost:8080/editSneaker" +@RestController +public class SneakerController { + + @ResponseBody + @RequestMapping(value = "/addSneaker", method = RequestMethod.POST) + public LoginResponse handleAddSneaker(@RequestBody Sneaker sneaker){ + DatabaseOperation operation = new DatabaseOperation(); + operation.createConnect(); + boolean createSneaker = operation.insertData(sneaker.getSneakerName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); + if (createSneaker){ + return new LoginResponse("SessionID"); + } + return new LoginResponse("NaN"); + } + + @ResponseBody + @RequestMapping(value = "/editSneaker", method = RequestMethod.POST) + public LoginResponse handleEditSneaker(@RequestBody Sneaker sneaker){ + DatabaseOperation operation = new DatabaseOperation(); + operation.createConnect(); + boolean createSneaker = operation.editForm(sneaker.getIndex(), sneaker.getSneakerName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); + if (createSneaker){ + return new LoginResponse("SessionID"); + } + return new LoginResponse("NaN"); + } +} diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java new file mode 100644 index 0000000..c9c2792 --- /dev/null +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java @@ -0,0 +1,4 @@ +package com.company.sneakerinvetory.sneaker; + +public class SneakerResponse { +} From 2bd31f4f91b61595b0bf2c622064e730b5d5daa8 Mon Sep 17 00:00:00 2001 From: Terence21 Date: Mon, 16 Nov 2020 21:56:02 -0800 Subject: [PATCH 3/4] added methods to prevent adding bad sneaker request... validates that values aren't null --- .../sneakerinvetory/sneaker/Sneaker.java | 46 ++++++++++--------- .../sneaker/SneakerController.java | 23 +++++++--- .../sneaker/SneakerResponse.java | 1 + 3 files changed, 42 insertions(+), 28 deletions(-) diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java index a2bf7a2..50fe10e 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/Sneaker.java @@ -3,16 +3,15 @@ public class Sneaker { String index; String id; - String SneakerName; - String Sku; + String shoeName; + String sku; String size; - String date; String price; - public Sneaker(String id, String sneakerName, String Sku, String size, String price){ + public Sneaker(String id, String shoeName, String sku, String size, String price){ this.id = id; - this.SneakerName = sneakerName; - this.Sku = Sku; + this.shoeName = shoeName; + this.sku = sku; this.size = size; this.price = price; } @@ -29,38 +28,30 @@ public String getid() { return id; } - public void setid(String id) { + public void setId(String id) { this.id = id; } - public String getSneakerName() { - return SneakerName; + public String getShoeName() { + return shoeName; } - public void setSneakerName(String sneakerName) { - SneakerName = sneakerName; + public void setShoeName(String sneakerName) { + shoeName = sneakerName; } public String getSku() { - return Sku; + return sku; } public void setSku(String sku) { - Sku = sku; + sku = sku; } public String getSize() { return size; } - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - public void setSize(String size) { this.size = size; } @@ -72,4 +63,17 @@ public String getPrice() { public void setPrice(String price) { this.price = price; } + + public static boolean validateAddSneaker(Sneaker sneaker) { + return sneaker.getid() != null && sneaker.getPrice() != null && sneaker.getSize() != null && sneaker.getSku() != null && sneaker.getShoeName() != null; + + } + public static boolean validateEditSneaker(Sneaker sneaker){ + return sneaker.getIndex() != null && sneaker.getid() != null && sneaker.getPrice() != null && sneaker.getSize() != null && sneaker.getSku() != null && sneaker.getShoeName() != null; + } + + public static void printSneaker(Sneaker sneaker){ + System.out.println(sneaker.getIndex() + "\t" + sneaker.getid() + "\t" + sneaker.getShoeName() + "\t" + sneaker.getSku() + "\t" + + sneaker.getSize() + "\t" + sneaker.getPrice()); + } } diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java index 4aa812b..5093b42 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java @@ -7,15 +7,18 @@ //curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data '{ "index": "1", "id" : "tester", "SneakerName" : "yeezy 350 v2", "Sku" : "fu9006", "size" : "11", "price" : "$350" }' "http://localhost:8080/editSneaker" @RestController public class SneakerController { - + @ResponseBody @RequestMapping(value = "/addSneaker", method = RequestMethod.POST) public LoginResponse handleAddSneaker(@RequestBody Sneaker sneaker){ DatabaseOperation operation = new DatabaseOperation(); operation.createConnect(); - boolean createSneaker = operation.insertData(sneaker.getSneakerName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); - if (createSneaker){ - return new LoginResponse("SessionID"); + boolean valid = Sneaker.validateAddSneaker(sneaker); + if (valid) { + boolean createSneaker = operation.insertData(sneaker.getShoeName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); + if (createSneaker) { + return new LoginResponse("SessionID"); + } } return new LoginResponse("NaN"); } @@ -25,9 +28,15 @@ public LoginResponse handleAddSneaker(@RequestBody Sneaker sneaker){ public LoginResponse handleEditSneaker(@RequestBody Sneaker sneaker){ DatabaseOperation operation = new DatabaseOperation(); operation.createConnect(); - boolean createSneaker = operation.editForm(sneaker.getIndex(), sneaker.getSneakerName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); - if (createSneaker){ - return new LoginResponse("SessionID"); + boolean valid = Sneaker.validateEditSneaker(sneaker); + Sneaker.printSneaker(sneaker); + System.out.println("sneaker index: " + valid); + if (valid) { + boolean createSneaker = operation.editForm(sneaker.getIndex(), sneaker.getShoeName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); + if (createSneaker) { + + return new LoginResponse("SessionID"); + } } return new LoginResponse("NaN"); } diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java index c9c2792..eabe2e8 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerResponse.java @@ -1,4 +1,5 @@ package com.company.sneakerinvetory.sneaker; public class SneakerResponse { + } From 2b49ab51a264bb797961a6d4a73c190927bb518e Mon Sep 17 00:00:00 2001 From: Terence21 Date: Mon, 16 Nov 2020 22:11:02 -0800 Subject: [PATCH 4/4] removed print statments --- .../company/sneakerinvetory/sneaker/SneakerController.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java index 5093b42..00e2101 100644 --- a/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java +++ b/sneaker-service/src/main/java/com/company/sneakerinvetory/sneaker/SneakerController.java @@ -7,7 +7,7 @@ //curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data '{ "index": "1", "id" : "tester", "SneakerName" : "yeezy 350 v2", "Sku" : "fu9006", "size" : "11", "price" : "$350" }' "http://localhost:8080/editSneaker" @RestController public class SneakerController { - + @ResponseBody @RequestMapping(value = "/addSneaker", method = RequestMethod.POST) public LoginResponse handleAddSneaker(@RequestBody Sneaker sneaker){ @@ -29,8 +29,6 @@ public LoginResponse handleEditSneaker(@RequestBody Sneaker sneaker){ DatabaseOperation operation = new DatabaseOperation(); operation.createConnect(); boolean valid = Sneaker.validateEditSneaker(sneaker); - Sneaker.printSneaker(sneaker); - System.out.println("sneaker index: " + valid); if (valid) { boolean createSneaker = operation.editForm(sneaker.getIndex(), sneaker.getShoeName(), sneaker.getSku(), sneaker.getSize(), sneaker.getPrice(), sneaker.getid()); if (createSneaker) {