From a41839a29ba4772ad704883395bc2c7efc28710a Mon Sep 17 00:00:00 2001 From: Rhys Evans <EvansRM17@cardiff.ac.uk> Date: Sat, 9 Dec 2023 10:05:04 +0000 Subject: [PATCH] Further work implementing LocationJDBC methods --- .../SmartTowns/data/LocationRepository.java | 4 +-- .../data/LocationRepositoryJDBC.java | 4 +-- .../SmartTowns/data/LocationsCoordinates.java | 25 +++++++++++++++++++ .../data/LocationsCoordinatesRepository.java | 1 + .../LocationsCoordinatesRepositoryJDBC.java | 13 +++++----- .../SmartTownsApplicationTests.java | 2 +- 6 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/main/java/Team5/SmartTowns/data/LocationRepository.java b/src/main/java/Team5/SmartTowns/data/LocationRepository.java index 903db17c..8677217d 100644 --- a/src/main/java/Team5/SmartTowns/data/LocationRepository.java +++ b/src/main/java/Team5/SmartTowns/data/LocationRepository.java @@ -9,8 +9,8 @@ public interface LocationRepository { void addLocation(Location loc); - List<Location> approvedLocations(); - List<Location> unapprovedLocations(); + List<Location> getApprovedLocations(); + List<Location> getUnapprovedLocations(); // List<Location> approvedLocations(); diff --git a/src/main/java/Team5/SmartTowns/data/LocationRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/data/LocationRepositoryJDBC.java index fcfaa676..4071600b 100644 --- a/src/main/java/Team5/SmartTowns/data/LocationRepositoryJDBC.java +++ b/src/main/java/Team5/SmartTowns/data/LocationRepositoryJDBC.java @@ -41,7 +41,7 @@ public class LocationRepositoryJDBC implements LocationRepository { } @Override - public List<Location> approvedLocations(){ + public List<Location> getApprovedLocations(){ List<Location> locations = getAllLocation(); List<Location> locationApprovalList= new ArrayList<Location>(); for (Location loc :locations){ @@ -52,7 +52,7 @@ public class LocationRepositoryJDBC implements LocationRepository { } @Override - public List<Location> unapprovedLocations(){ + public List<Location> getUnapprovedLocations(){ List<Location> locations = getAllLocation(); List<Location> locationUnapprovedList= new ArrayList<Location>(); for (Location loc :locations){ diff --git a/src/main/java/Team5/SmartTowns/data/LocationsCoordinates.java b/src/main/java/Team5/SmartTowns/data/LocationsCoordinates.java index ca12bf82..243fb73c 100644 --- a/src/main/java/Team5/SmartTowns/data/LocationsCoordinates.java +++ b/src/main/java/Team5/SmartTowns/data/LocationsCoordinates.java @@ -5,8 +5,11 @@ package Team5.SmartTowns.data; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; +import java.util.List; + @Data @AllArgsConstructor @NoArgsConstructor @@ -15,6 +18,7 @@ public class LocationsCoordinates extends LocationRepositoryJDBC { private int locationID; private String locationCoordsLong; private String locationCoordsLat; + private JdbcTemplate jdbc; public int getLocationID() { @@ -50,6 +54,27 @@ public class LocationsCoordinates extends LocationRepositoryJDBC { this.locationCoordsLat = locationCoordsLat; } + public LocationsCoordinates(JdbcTemplate aJdbc) { + super(aJdbc); + } + + public List<Location> getFullListLocations(JdbcTemplate aJdbc){ + LocationsCoordinates jdbcSuper= new LocationsCoordinates(aJdbc); + return new LocationRepositoryJDBC(aJdbc).getAllLocation(); + } + + public List<Location> getFullApprovedLocations(JdbcTemplate aJdbc){ + LocationsCoordinates jdbcSuper= new LocationsCoordinates(aJdbc); + return new LocationRepositoryJDBC(aJdbc).getApprovedLocations(); + } + + public List<Location> getFullUnapprovedLocations(JdbcTemplate aJdbc){ + LocationsCoordinates jdbcSuper= new LocationsCoordinates(aJdbc); + return new LocationRepositoryJDBC(aJdbc).getUnapprovedLocations(); + } + + + /// Need a constructor to create a lcoations list, approved lcoatiosn lsit, unapproved lcoations list. diff --git a/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepository.java b/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepository.java index acb4a503..973332b4 100644 --- a/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepository.java +++ b/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepository.java @@ -9,4 +9,5 @@ public interface LocationsCoordinatesRepository { + } diff --git a/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepositoryJDBC.java index f05827bd..7f5bf341 100644 --- a/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepositoryJDBC.java +++ b/src/main/java/Team5/SmartTowns/data/LocationsCoordinatesRepositoryJDBC.java @@ -3,10 +3,12 @@ package Team5.SmartTowns.data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; import java.util.List; -public class LocationsCoordinatesRepositoryJDBC extends LocationsCoordinatesRepository{ +@Repository +public class LocationsCoordinatesRepositoryJDBC implements LocationsCoordinatesRepository{ private JdbcTemplate jdbc; @@ -25,13 +27,13 @@ public class LocationsCoordinatesRepositoryJDBC extends LocationsCoordinatesRepo ); } - public List<LocationsCoordinates> getAllLocation(){ + public List<LocationsCoordinates> getAllLocationCoords(){ String sql= "SELECT * FROM locationCoordinates"; return jdbc.query(sql, locationCoordMapper); } @Override - public void addLocation(LocationsCoordinates locCoords) { + public void addLocationCoord(LocationsCoordinates locCoords) { String sql = "insert into locationCoordinates(locationID, locationCoordsLong,locationCoordsLat) values (?,?,?)"; jdbc.update(sql,locCoords.getLocationID(), locCoords.getLocationCoordsLong(),locCoords.getLocationCoordsLat()); @@ -47,11 +49,10 @@ public class LocationsCoordinatesRepositoryJDBC extends LocationsCoordinatesRepo // @BeforeAll // public static void before2() { // locationRepo = new locationRepositoryJDBC(jdbc); } - @Autowired - private locationRepository locationRepository; public void approveLocationAndAddCoords(String town, String longCoords, String latCoords){ // need list too - List<Location> needApprovalList = new LocationsCoordinatesRepositoryJDBC.unapprovedLocations(); + +// List<Location> needApprovalList = .unapprovedLocations(); // unapproved list // if matches name, approve // add long/lat coords diff --git a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java index 816e5bea..320fa59b 100644 --- a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java +++ b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java @@ -64,4 +64,4 @@ class SmartTownsApplicationTests { // } } - +// create test where getFullListLocations and getFullApproved/Unapporved lcopations from lcoationcooirds matches locationJDBC -- GitLab