Commit f5621d5d authored by Ansal M A's avatar Ansal M A

new

parent f63dcecb
......@@ -30,6 +30,14 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -33,4 +33,5 @@ public class EmployeeServiceFacadeApplication {
public WebClient.Builder getProjWebClient(){
return WebClient.builder().baseUrl("lb://project-ws/project/");
}
}
......@@ -3,6 +3,9 @@ package com.nisum.poc.facade.controller;
import com.nisum.poc.facade.response.EmployeeDetails;
import com.nisum.poc.facade.response.EmployeeFacadeResponse;
import com.nisum.poc.facade.service.IEmployeeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -14,14 +17,18 @@ import reactor.core.publisher.Mono;
@RequestMapping(value = "/facade")
public class EmployeeFacadeController {
private IEmployeeService employeeService;
Logger logger = LoggerFactory.getLogger(EmployeeFacadeController.class);
private final IEmployeeService employeeService;
@Autowired
public EmployeeFacadeController(IEmployeeService employeeService){
this.employeeService = employeeService;
}
@GetMapping(value = "/v1/all/employee")
public Flux<EmployeeDetails> fetchAllEmployee(){
logger.info("Calling All Employee API Controller ...");
return employeeService.fetchEmployeeDetails();
}
......@@ -32,6 +39,8 @@ public class EmployeeFacadeController {
*/
@GetMapping(value = "/v1/{empId}/employee")
public Mono<EmployeeFacadeResponse> fetchEmployeeById(@PathVariable Long empId){
logger.info("Calling Particular Employee API Controller : {}", empId);
return employeeService.fetchEmployeeById(empId);
}
}
......@@ -10,6 +10,8 @@ import com.nisum.poc.facade.response.ProjectDetails;
import com.nisum.poc.facade.service.IEmployeeService;
import org.modelmapper.ModelMapper;
import org.modelmapper.convention.MatchingStrategies;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
......@@ -18,6 +20,8 @@ import reactor.core.publisher.Mono;
@Service
public class EmployeeService implements IEmployeeService {
Logger logger = LoggerFactory.getLogger(EmployeeService.class);
private final IEmployeeClient employeeClient;
private final IDepartmentClient departmentClient;
......@@ -33,13 +37,15 @@ public class EmployeeService implements IEmployeeService {
}
@Override
public Flux<EmployeeDetails> fetchEmployeeDetails() {
logger.info("Service Reached ");
return employeeClient.fetchAllEmployee();
}
@Override
public Mono<EmployeeFacadeResponse> fetchEmployeeById(Long empId) {
logger.info(" Started fetchEmployeeById ");
Mono<EmployeeDetails> monoEmployeeDetails = employeeClient.findEmployeeDetails(empId);
return monoEmployeeDetails.zipWhen(employeeDetails -> findProjectAndDeptDetails(employeeDetails),
(employeeDetails, facadeResponse) -> facadeResponse);
......@@ -48,6 +54,7 @@ public class EmployeeService implements IEmployeeService {
private Mono<EmployeeFacadeResponse> findProjectAndDeptDetails(EmployeeDetails employeeDetails){
logger.info(" Started findProjectAndDeptDetails ");
EmployeeFacadeResponse response = constructEmployeeFacadeResponse(employeeDetails);
Long deptId = employeeDetails.getDeptId();
......
......@@ -5,6 +5,14 @@ eureka.client.serviceUrl.defaultZone=http://localhost:8010/eureka/
#api-gateway is calling the microservices using username of the system which you need to call using ip address of the system
eureka.instance.prefer-ip-address=true
logging.file = D:/log/facade-ws.log
spring.sleuth.sampler.probability = 1
spring.zipkin.base-url = http://localhost:9411
#Property to enable actuator end point.
management.endpoint.web.exposure.include = mapping,bean,health,httptrace,routes
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment