diff --git a/src/main/java/Team5/SmartTowns/Organisation/organisationControllers.java b/src/main/java/Team5/SmartTowns/Organisation/organisationControllers.java index 3108a2dded7d5b65991dda3d6b7859e5a052278f..804b00c5775b3578cfe5bdfd990f6a638ca1b9cb 100644 --- a/src/main/java/Team5/SmartTowns/Organisation/organisationControllers.java +++ b/src/main/java/Team5/SmartTowns/Organisation/organisationControllers.java @@ -1,9 +1,14 @@ package Team5.SmartTowns.Organisation; +import Team5.SmartTowns.Data.Location; +import Team5.SmartTowns.Data.addAddTownsRepository; +import Team5.SmartTowns.Landmarks.Landmarks; +import Team5.SmartTowns.Towns.Towns; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import org.springframework.stereotype.Controller; @Controller diff --git a/src/main/java/Team5/SmartTowns/addTowns/addAddTowns.java b/src/main/java/Team5/SmartTowns/addTowns/addAddTowns.java new file mode 100644 index 0000000000000000000000000000000000000000..a0a196c1b51126d539633eb3246e429f918568c6 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/addTowns/addAddTowns.java @@ -0,0 +1,51 @@ +package Team5.SmartTowns.addTowns; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class addAddTowns { + private String townName; + private String address1; + private String address2; + private String city; + private String county; + private String postcode; + + @Override + public String toString(){ + return "Town{" + + townName + '\'' + + address1 + '\'' + + address2 + '\'' + + city + '\'' + + county + '\'' + + postcode + + '}'; + } + + public String getTownName() { + return townName; + } + + public String getAddress1() { + return address1; + } + + public String getAddress2() { + return address2; + } + + public String getCity() { + return city; + } + + public String getCounty() { + return county; + } + + public String getPostcode() { + return postcode; + } +} diff --git a/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepository.java b/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..6eb350880db3ffc2148f7e7c034134a23859de69 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepository.java @@ -0,0 +1,11 @@ +package Team5.SmartTowns.addTowns; + +import Team5.SmartTowns.Data.Location; +import Team5.SmartTowns.Towns.Towns; + +import java.util.List; + +public interface addAddTownsRepository { + List<Location> getAllAddTowns(); + void addAddTowns(Towns tow); +} diff --git a/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepositoryJDBC.java new file mode 100644 index 0000000000000000000000000000000000000000..9be19b9e9af0d4672b6c03d9a6d3b86a5c6286ff --- /dev/null +++ b/src/main/java/Team5/SmartTowns/addTowns/addAddTownsRepositoryJDBC.java @@ -0,0 +1,42 @@ +package Team5.SmartTowns.addTowns; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public class addAddTownsRepositoryJDBC implements addAddTownsRepository { + private JdbcTemplate jdbc; + private RowMapper<addAddTowns> addTownsMapper; + + public addAddTownsRepositoryJDBC(JdbcTemplate ajdbc) { + this.jdbc = ajdbc; + setaddTownsMapper(); + } + + private void setaddTownsMapper() { + addTownsMapper = (rs, i) -> new addAddTowns( + rs.getString("townName"), + rs.getString("address1"), + rs.getString("address2"), + rs.getString("city"), + rs.getString("county"), + rs.getString("postcode") + ); + } + + public List<addAddTowns> getAllAddTowns() { + String sql = "SELECT * FROM addTowns"; + return jdbc.query(sql, addTownsMapper); + } + + @Override + public void addTown(addAddTowns tow) { + String sql = "insert into addTowns( townName, address1, address2, city, county, postcode) values (?, ?, ?, ?, ?, ?)"; + + jdbc.update(sql, tow.getTownName(), tow.getAddress1(), tow.getAddress2(), tow.getCity(), tow.getCounty(), tow.getPostcode()); + } +} + diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 342be16c4cf4e592070ebc07f225dede965f06c2..de85e8509a8e9e7d68abc2b84747339a3b886408 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -56,7 +56,7 @@ insert into stickerprogress (userID, stickerID, hasSticker) value ('1', '1', tru insert into stickerprogress (userID, stickerID, hasSticker) value ('1', '3', true); insert into stickerprogress (userID, stickerID, hasSticker) value ('2', '2', true); -delete from townswithtrails -insert into townswithtrails (townName, address1, address2, city, county, postcode) value ('Caerphilly Town', 'Castle Street', '', 'Caerphilly', '', 'CF83 1NU'); -insert into townswithtrails (townName, address1, address2, city, county, postcode) value ('Penarth Town', '1 Windsor Arcade', '', 'Penarth', '', 'CF64 1JA'); -insert into townswithtrails (townName, address1, address2, city, county, postcode) value ('Risca Town', '47 Tredegar Street', 'Pontymister, Risca West', 'Newport', 'Caerphilly County Borough', 'NP11 6BW'); \ No newline at end of file +delete from addTowns; +insert into addTowns (townName, address1, address2, city, county, postcode) value ('Caerphilly Town', 'Castle Street', '', 'Caerphilly', '', 'CF83 1NU'); +insert into addTowns (townName, address1, address2, city, county, postcode) value ('Penarth Town', '1 Windsor Arcade', '', 'Penarth', '', 'CF64 1JA'); +insert into addTowns (townName, address1, address2, city, county, postcode) value ('Risca Town', '47 Tredegar Street', 'Pontymister, Risca West', 'Newport', 'Caerphilly County Borough', 'NP11 6BW'); \ No newline at end of file diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index 7c2c19d19b5b13c0df9d32b73fe553fe07284150..ac6d61671b27f33c5302f88e726abf16832a7c48 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -59,10 +59,10 @@ create table if not exists stickerProgress hasSticker boolean /*Has sticker or not*/ ) engine=InnoDB; -drop table if exists townsWithTrails; -create table if not exists townsWithTrails +drop table if exists addTowns; +create table if not exists addTowns ( - townsWithTrailsID bigint auto_increment primary key, + townsID bigint auto_increment primary key, townName varchar(128), address1 varchar(128), address2 varchar(128),