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