Skip to content

Commit e63351a

Browse files
committed
🎨 Nairobi health facilities
1 parent c151831 commit e63351a

File tree

7 files changed

+80
-16
lines changed

7 files changed

+80
-16
lines changed

src/main/java/com/brianpondi/gis/controller/NairobiSubCountyController.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
import com.brianpondi.gis.entity.NairobiSubCounty;
44
import com.brianpondi.gis.service.NairobiSubCountyService;
55
import javassist.NotFoundException;
6-
import lombok.RequiredArgsConstructor;
76
import org.springframework.beans.factory.annotation.Autowired;
87
import org.springframework.web.bind.annotation.*;
98

109
import java.util.List;
1110

12-
@RequiredArgsConstructor
11+
1312
@RestController
1413
@RequestMapping("/api/nairobisubcounty")
1514
public class NairobiSubCountyController {
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package com.brianpondi.gis.entity;
22

3-
import org.postgis.Geometry;
3+
import com.vividsolutions.jts.geom.Geometry;
44
import lombok.Getter;
55
import lombok.Setter;
66

7-
import javax.persistence.Column;
87
import javax.persistence.Entity;
98
import javax.persistence.GeneratedValue;
109
import javax.persistence.Id;
@@ -13,17 +12,14 @@
1312
@Getter
1413
@Setter
1514
@Entity(name = "nairobi_health_facilities")
16-
1715
public class NairobiHealthFacility implements Serializable {
16+
17+
private static final long serialVersionUID = 1L;
1818
@Id
1919
@GeneratedValue
20-
@Column(name = "id")
21-
private int id;
22-
@Column(name = "geom")
20+
private Integer id;
2321
private Geometry geom;
24-
@Column(name = "name")
2522
private String name;
26-
@Column(name = "contact")
2723
private String contact;
2824

2925
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.brianpondi.gis.entity;
22

3+
import com.vividsolutions.jts.geom.Geometry;
34
import lombok.Getter;
45
import lombok.Setter;
5-
import org.postgis.Geometry;
6+
import org.springframework.data.annotation.Transient;
67

7-
import javax.persistence.Column;
88
import javax.persistence.Entity;
99
import javax.persistence.GeneratedValue;
1010
import javax.persistence.Id;
@@ -15,13 +15,13 @@
1515
@Entity(name = "nairobi_sub_counties")
1616
public class NairobiSubCounty implements Serializable {
1717

18+
private static final long serialVersionUID = 1L;
19+
1820
@Id
1921
@GeneratedValue
20-
@Column(name = "id")
21-
private int id;
22-
@Column(name = "geom")
22+
private Integer id;
23+
@Transient
2324
private Geometry geom;
24-
@Column(name = "name")
2525
private String name;
2626

2727
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.brianpondi.gis.service;
2+
3+
import com.brianpondi.gis.entity.NairobiHealthFacility;
4+
import javassist.NotFoundException;
5+
import org.springframework.stereotype.Service;
6+
7+
import java.util.List;
8+
9+
@Service
10+
public interface NairobiHealthFacilityService {
11+
List<NairobiHealthFacility> findAll();
12+
NairobiHealthFacility findById(int id) throws NotFoundException;
13+
void deleteById(int id);
14+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.brianpondi.gis.service;
2+
3+
import com.brianpondi.gis.entity.NairobiHealthFacility;
4+
import com.brianpondi.gis.repository.NairobiHealthFacilityRepository;
5+
import com.vividsolutions.jts.geom.Geometry;
6+
import com.vividsolutions.jts.geom.GeometryFactory;
7+
import com.vividsolutions.jts.io.ParseException;
8+
import com.vividsolutions.jts.io.WKTReader;
9+
import javassist.NotFoundException;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
12+
import java.util.List;
13+
14+
public class NairobiHealthFacilityServiceImp implements NairobiHealthFacilityService {
15+
16+
private static GeometryFactory geometryFactory = new GeometryFactory();
17+
private static WKTReader wktReader = new WKTReader(geometryFactory);
18+
19+
@Autowired
20+
NairobiHealthFacilityRepository nairobiHealthFacilityRepository;
21+
22+
private static Geometry fromWkt(String wkt) {
23+
try {
24+
return wktReader.read(wkt);
25+
} catch (ParseException e) {
26+
System.out.println("Converting from WKT to Geometry failure");
27+
}
28+
return null;
29+
}
30+
31+
public List<NairobiHealthFacility> findAll() {
32+
return (List<NairobiHealthFacility>) nairobiHealthFacilityRepository.findAll();
33+
}
34+
35+
public NairobiHealthFacility findById(int id) throws NotFoundException {
36+
return nairobiHealthFacilityRepository.findById(id).orElseThrow(
37+
() -> new NotFoundException("Sub County not found with ID: " + id)
38+
);
39+
}
40+
41+
42+
public void deleteById(int id) {
43+
nairobiHealthFacilityRepository.deleteById(id);
44+
}
45+
46+
}

src/main/java/com/brianpondi/gis/service/NairobiSubCountyService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.brianpondi.gis.entity.NairobiSubCounty;
44
import javassist.NotFoundException;
5+
import org.springframework.stereotype.Service;
56

67
import java.util.List;
78

9+
@Service
810
public interface NairobiSubCountyService {
911
List<NairobiSubCounty> findAll();
1012
NairobiSubCounty findById(int id) throws NotFoundException;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
11

2+
3+
spring.datasource.url=jdbc:postgresql://localhost:5432/nairobigis
4+
spring.datasource.username=postgres
5+
spring.datasource.password=123456
6+
spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect
7+
spring.jpa.hibernate.ddl-auto=update
8+
server.port= 8081

0 commit comments

Comments
 (0)