diff --git a/pom.xml b/pom.xml
index 17fd7ad..d7789e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,6 +23,12 @@
org.springframework.boot
spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
org.springframework.boot
spring-boot-starter-data-jdbc
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/EmployeeData.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/EmployeeData.java
new file mode 100644
index 0000000..f96ea23
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/EmployeeData.java
@@ -0,0 +1,20 @@
+package com.zoomcare.candidatechallenge.Employee;
+
+import java.util.List;
+import java.util.Optional;
+
+import com.zoomcare.candidatechallenge.Employee.entities.Employee;
+import com.zoomcare.candidatechallenge.Employee.entities.Property;
+
+public class EmployeeData {
+ private final Optional employee;
+ private final List property;
+
+ public EmployeeData(Optional employee, List property) {
+ this.employee = employee;
+ this.property = property;
+ }
+
+ public Optional getEmployee() { return employee; }
+ public List getProperty() { return property; }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/controllers/EmployeeController.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/controllers/EmployeeController.java
new file mode 100644
index 0000000..3832bfa
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/controllers/EmployeeController.java
@@ -0,0 +1,41 @@
+package com.zoomcare.candidatechallenge.Employee.controllers;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import com.zoomcare.candidatechallenge.Employee.entities.Employee;
+import com.zoomcare.candidatechallenge.Employee.entities.Property;
+import com.zoomcare.candidatechallenge.Employee.repositories.EmployeeRepository;
+import com.zoomcare.candidatechallenge.Employee.repositories.PropertyRepository;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.zoomcare.candidatechallenge.Employee.EmployeeData;
+
+@RestController
+@RequestMapping("/employee")
+public class EmployeeController {
+
+ @Autowired
+ private EmployeeRepository employeeRepository;
+
+ @Autowired
+ private PropertyRepository propertyRepository;
+
+
+ @GetMapping("/{id}")
+ public ResponseEntity getEmployeeById(@PathVariable("id") Integer id) throws Exception {
+ Optional employee = employeeRepository.findById(id);
+ List property = propertyRepository.findByEmployeeId(id);
+ return new ResponseEntity(new EmployeeData( employee, property ), HttpStatus.OK);
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Employee.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Employee.java
new file mode 100644
index 0000000..106b453
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Employee.java
@@ -0,0 +1,36 @@
+package com.zoomcare.candidatechallenge.Employee.entities;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="EMPLOYEE")
+public class Employee {
+ @Id
+ @Column(name="ID")
+ private Integer id;
+
+ @Column(name="SUPERVISOR_ID")
+ private Integer supervisorId;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getSupervisorId() {
+ return supervisorId;
+ }
+
+ public void setSupervisorId(Integer supervisorId) {
+ this.supervisorId = supervisorId;
+ }
+
+
+}
+
+
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Property.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Property.java
new file mode 100644
index 0000000..d1a2bae
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/entities/Property.java
@@ -0,0 +1,46 @@
+package com.zoomcare.candidatechallenge.Employee.entities;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="PROPERTY")
+public class Property {
+ @Id
+ @Column(name="EMPLOYEE_ID")
+ private Integer id;
+
+ @Column(name="KEY")
+ private String key;
+
+ @Column(name="VALUE")
+ private String value;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/EmployeeRepository.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/EmployeeRepository.java
new file mode 100644
index 0000000..5fa20e9
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/EmployeeRepository.java
@@ -0,0 +1,9 @@
+package com.zoomcare.candidatechallenge.Employee.repositories;
+
+import org.springframework.data.repository.CrudRepository;
+
+import com.zoomcare.candidatechallenge.Employee.entities.Employee;
+
+public interface EmployeeRepository extends CrudRepository {
+
+}
diff --git a/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/PropertyRepository.java b/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/PropertyRepository.java
new file mode 100644
index 0000000..925545f
--- /dev/null
+++ b/src/main/java/com/zoomcare/candidatechallenge/Employee/repositories/PropertyRepository.java
@@ -0,0 +1,15 @@
+package com.zoomcare.candidatechallenge.Employee.repositories;
+
+import java.util.List;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+import com.zoomcare.candidatechallenge.Employee.entities.Property;
+
+public interface PropertyRepository extends CrudRepository {
+
+ @Query("select u from Property u where u.id = :id")
+ List findByEmployeeId(@Param("id") Integer id);
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4408d17..0ffcc79 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,13 @@
spring:
+ main:
+ allow-bean-definition-overriding: true
+ datasource:
+ url: jdbc:h2:mem:testdb
+ username: sa
+ password:
+ driverClassName: org.h2.Driver
+ jpa:
+ spring.jpa.database-platform: org.hibernate.dialect.H2Dialect
h2:
console:
enabled: true