Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
EmployeeServiceFacade
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ansal M A
EmployeeServiceFacade
Commits
f5621d5d
Commit
f5621d5d
authored
May 24, 2022
by
Ansal M A
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new
parent
f63dcecb
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
2 deletions
+35
-2
pom.xml
pom.xml
+8
-0
EmployeeServiceFacadeApplication.java
...om/nisum/poc/facade/EmployeeServiceFacadeApplication.java
+1
-0
EmployeeFacadeController.java
...nisum/poc/facade/controller/EmployeeFacadeController.java
+10
-1
EmployeeService.java
...va/com/nisum/poc/facade/service/impl/EmployeeService.java
+8
-1
application.properties
src/main/resources/application.properties
+8
-0
No files found.
pom.xml
View file @
f5621d5d
...
@@ -30,6 +30,14 @@
...
@@ -30,6 +30,14 @@
<groupId>
org.springframework.cloud
</groupId>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
</dependency>
</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>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
...
src/main/java/com/nisum/poc/facade/EmployeeServiceFacadeApplication.java
View file @
f5621d5d
...
@@ -33,4 +33,5 @@ public class EmployeeServiceFacadeApplication {
...
@@ -33,4 +33,5 @@ public class EmployeeServiceFacadeApplication {
public
WebClient
.
Builder
getProjWebClient
(){
public
WebClient
.
Builder
getProjWebClient
(){
return
WebClient
.
builder
().
baseUrl
(
"lb://project-ws/project/"
);
return
WebClient
.
builder
().
baseUrl
(
"lb://project-ws/project/"
);
}
}
}
}
src/main/java/com/nisum/poc/facade/controller/EmployeeFacadeController.java
View file @
f5621d5d
...
@@ -3,6 +3,9 @@ package com.nisum.poc.facade.controller;
...
@@ -3,6 +3,9 @@ package com.nisum.poc.facade.controller;
import
com.nisum.poc.facade.response.EmployeeDetails
;
import
com.nisum.poc.facade.response.EmployeeDetails
;
import
com.nisum.poc.facade.response.EmployeeFacadeResponse
;
import
com.nisum.poc.facade.response.EmployeeFacadeResponse
;
import
com.nisum.poc.facade.service.IEmployeeService
;
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.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -14,14 +17,18 @@ import reactor.core.publisher.Mono;
...
@@ -14,14 +17,18 @@ import reactor.core.publisher.Mono;
@RequestMapping
(
value
=
"/facade"
)
@RequestMapping
(
value
=
"/facade"
)
public
class
EmployeeFacadeController
{
public
class
EmployeeFacadeController
{
private
IEmployeeService
employeeService
;
Logger
logger
=
LoggerFactory
.
getLogger
(
EmployeeFacadeController
.
class
);
private
final
IEmployeeService
employeeService
;
@Autowired
public
EmployeeFacadeController
(
IEmployeeService
employeeService
){
public
EmployeeFacadeController
(
IEmployeeService
employeeService
){
this
.
employeeService
=
employeeService
;
this
.
employeeService
=
employeeService
;
}
}
@GetMapping
(
value
=
"/v1/all/employee"
)
@GetMapping
(
value
=
"/v1/all/employee"
)
public
Flux
<
EmployeeDetails
>
fetchAllEmployee
(){
public
Flux
<
EmployeeDetails
>
fetchAllEmployee
(){
logger
.
info
(
"Calling All Employee API Controller ..."
);
return
employeeService
.
fetchEmployeeDetails
();
return
employeeService
.
fetchEmployeeDetails
();
}
}
...
@@ -32,6 +39,8 @@ public class EmployeeFacadeController {
...
@@ -32,6 +39,8 @@ public class EmployeeFacadeController {
*/
*/
@GetMapping
(
value
=
"/v1/{empId}/employee"
)
@GetMapping
(
value
=
"/v1/{empId}/employee"
)
public
Mono
<
EmployeeFacadeResponse
>
fetchEmployeeById
(
@PathVariable
Long
empId
){
public
Mono
<
EmployeeFacadeResponse
>
fetchEmployeeById
(
@PathVariable
Long
empId
){
logger
.
info
(
"Calling Particular Employee API Controller : {}"
,
empId
);
return
employeeService
.
fetchEmployeeById
(
empId
);
return
employeeService
.
fetchEmployeeById
(
empId
);
}
}
}
}
src/main/java/com/nisum/poc/facade/service/impl/EmployeeService.java
View file @
f5621d5d
...
@@ -10,6 +10,8 @@ import com.nisum.poc.facade.response.ProjectDetails;
...
@@ -10,6 +10,8 @@ import com.nisum.poc.facade.response.ProjectDetails;
import
com.nisum.poc.facade.service.IEmployeeService
;
import
com.nisum.poc.facade.service.IEmployeeService
;
import
org.modelmapper.ModelMapper
;
import
org.modelmapper.ModelMapper
;
import
org.modelmapper.convention.MatchingStrategies
;
import
org.modelmapper.convention.MatchingStrategies
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Flux
;
...
@@ -18,6 +20,8 @@ import reactor.core.publisher.Mono;
...
@@ -18,6 +20,8 @@ import reactor.core.publisher.Mono;
@Service
@Service
public
class
EmployeeService
implements
IEmployeeService
{
public
class
EmployeeService
implements
IEmployeeService
{
Logger
logger
=
LoggerFactory
.
getLogger
(
EmployeeService
.
class
);
private
final
IEmployeeClient
employeeClient
;
private
final
IEmployeeClient
employeeClient
;
private
final
IDepartmentClient
departmentClient
;
private
final
IDepartmentClient
departmentClient
;
...
@@ -33,13 +37,15 @@ public class EmployeeService implements IEmployeeService {
...
@@ -33,13 +37,15 @@ public class EmployeeService implements IEmployeeService {
}
}
@Override
@Override
public
Flux
<
EmployeeDetails
>
fetchEmployeeDetails
()
{
public
Flux
<
EmployeeDetails
>
fetchEmployeeDetails
()
{
logger
.
info
(
"Service Reached "
);
return
employeeClient
.
fetchAllEmployee
();
return
employeeClient
.
fetchAllEmployee
();
}
}
@Override
@Override
public
Mono
<
EmployeeFacadeResponse
>
fetchEmployeeById
(
Long
empId
)
{
public
Mono
<
EmployeeFacadeResponse
>
fetchEmployeeById
(
Long
empId
)
{
logger
.
info
(
" Started fetchEmployeeById "
);
Mono
<
EmployeeDetails
>
monoEmployeeDetails
=
employeeClient
.
findEmployeeDetails
(
empId
);
Mono
<
EmployeeDetails
>
monoEmployeeDetails
=
employeeClient
.
findEmployeeDetails
(
empId
);
return
monoEmployeeDetails
.
zipWhen
(
employeeDetails
->
findProjectAndDeptDetails
(
employeeDetails
),
return
monoEmployeeDetails
.
zipWhen
(
employeeDetails
->
findProjectAndDeptDetails
(
employeeDetails
),
(
employeeDetails
,
facadeResponse
)
->
facadeResponse
);
(
employeeDetails
,
facadeResponse
)
->
facadeResponse
);
...
@@ -48,6 +54,7 @@ public class EmployeeService implements IEmployeeService {
...
@@ -48,6 +54,7 @@ public class EmployeeService implements IEmployeeService {
private
Mono
<
EmployeeFacadeResponse
>
findProjectAndDeptDetails
(
EmployeeDetails
employeeDetails
){
private
Mono
<
EmployeeFacadeResponse
>
findProjectAndDeptDetails
(
EmployeeDetails
employeeDetails
){
logger
.
info
(
" Started findProjectAndDeptDetails "
);
EmployeeFacadeResponse
response
=
constructEmployeeFacadeResponse
(
employeeDetails
);
EmployeeFacadeResponse
response
=
constructEmployeeFacadeResponse
(
employeeDetails
);
Long
deptId
=
employeeDetails
.
getDeptId
();
Long
deptId
=
employeeDetails
.
getDeptId
();
...
...
src/main/resources/application.properties
View file @
f5621d5d
...
@@ -5,6 +5,14 @@ eureka.client.serviceUrl.defaultZone=http://localhost:8010/eureka/
...
@@ -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
#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
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment