Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mcbff 12 research #29

Open
wants to merge 37 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
728a4f7
MCBFF-12: staff slips endpoints.
AntonAntonich Nov 15, 2024
4704967
MCBFF-12: ModuleDescriptor-template.json
AntonAntonich Nov 15, 2024
69300c1
MCBFF-12: sonar issues
AntonAntonich Nov 16, 2024
a003689
MCBFF-12: removed "staff"
AntonAntonich Nov 17, 2024
e3f1196
MCBFF-12: add "staff" in Unit Tests
AntonAntonich Nov 18, 2024
d9223b3
MCBFF-12: add "staff" when it necessary
AntonAntonich Nov 18, 2024
b0a8a24
MCBFF-12: deleted staffSlipsCommon.yaml
AntonAntonich Nov 18, 2024
6e23ef2
MCBFF-12: added dependencies to mod-tlr and mod-circulation interface…
AntonAntonich Nov 19, 2024
fd171db
MCBFF-12: removed quotes
AntonAntonich Nov 19, 2024
17815e7
MCBFF-12: add logic for checking is tenantId central
AntonAntonich Nov 19, 2024
284dc25
MCBFF-12: UT refactored
AntonAntonich Nov 20, 2024
b6f9287
MCBFF-12: add coverage
AntonAntonich Nov 20, 2024
b8901e0
Merge branch 'refs/heads/master' into MCBFF-12
AntonAntonich Nov 20, 2024
a23e0f1
MCBFF-12: add coverage
AntonAntonich Nov 20, 2024
0df7143
MCBFF-12: refactored
AntonAntonich Nov 20, 2024
ea77e59
MCBFF-12: refactored
AntonAntonich Nov 20, 2024
03dd9ae
MCBFF-12: refactored
AntonAntonich Nov 20, 2024
6c80bf1
MCBFF-12: staff slips split into search and pick
AntonAntonich Nov 21, 2024
1d14b44
Merge remote-tracking branch 'refs/remotes/origin/master' into MCBFF-12
AntonAntonich Nov 21, 2024
d7bc7bb
MCBFF-12: staff slips split into search and pick
AntonAntonich Nov 21, 2024
b755f58
MCBFF-12: urls. arrays naming
AntonAntonich Nov 21, 2024
c4fb064
MCBFF-12: test data provider methods naming
AntonAntonich Nov 22, 2024
0399a5e
MCBFF-12: increased openapi-generator version to 7.9.0
AntonAntonich Nov 22, 2024
6421c81
MCBFF-12: added necessary permissions
AntonAntonich Nov 22, 2024
6264709
MCBFF-12: added necessary permissions
AntonAntonich Nov 22, 2024
f29687c
MCBFF-12: user-tenants dependency as required
AntonAntonich Nov 22, 2024
acff7cf
MCBFF-12: decreased openapi codegen version to previous. removed prox…
AntonAntonich Nov 22, 2024
6b9f853
MCBFF-12: refactored empty lines
AntonAntonich Nov 22, 2024
076ad67
MCBFF-12: changed logic with routing
AntonAntonich Nov 23, 2024
acdb4c0
MCBFF-12: UT refactored
AntonAntonich Nov 23, 2024
a34d583
MCBFF-12: removed unnecessary logic
AntonAntonich Nov 23, 2024
d1b0b86
MCBFF-12: removed unnecessary permissions
AntonAntonich Nov 23, 2024
c19aa99
MCBFF-12 Refactor
alexanderkurash Nov 23, 2024
973fe2f
MCBFF-12: refactored
AntonAntonich Nov 23, 2024
dcd8298
MCBFF-12: turned on feign logging
AntonAntonich Nov 23, 2024
6e2065b
MCBFF-12: test logging
AntonAntonich Nov 24, 2024
1cbbd1e
MCBFF-12: circ client
AntonAntonich Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions descriptors/ModuleDescriptor-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
],
"modulePermissions": [
"tlr.pick-slips.collection.get",
"circulation.pick-slips.get"
"tlr.settings.get",
"circulation.pick-slips.get",
"user-tenants.collection.get"
]
}
]
Expand All @@ -35,7 +37,9 @@
],
"modulePermissions": [
"tlr.search-slips.collection.get",
"circulation.search-slips.get"
"tlr.settings.get",
"circulation.search-slips.get",
"user-tenants.collection.get"
]
}
]
Expand Down Expand Up @@ -200,6 +204,10 @@
"id": "requests-mediated",
"version": "2.0"
},
{
"id": "user-tenants",
"version": "1.0"
},
{
"id": "users",
"version": "16.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
import org.folio.circulationbff.domain.dto.AllowedServicePoints;
import org.folio.circulationbff.domain.dto.BffRequest;
import org.folio.circulationbff.domain.dto.CirculationSettingsResponse;
import org.folio.circulationbff.domain.dto.PickSlipCollection;
import org.folio.circulationbff.domain.dto.Request;
import org.folio.circulationbff.domain.dto.StaffSlipCollection;
import org.folio.circulationbff.domain.dto.SearchSlipCollection;
import org.folio.spring.config.FeignClientConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
Expand All @@ -32,8 +33,8 @@ public interface CirculationClient {
Request getRequestById(@PathVariable("requestId") String requestId);

@GetMapping("/pick-slips/{servicePointId}")
StaffSlipCollection getPickSlips(@PathVariable ("servicePointId") String servicePointId);
PickSlipCollection getPickSlips(@PathVariable ("servicePointId") String servicePointId);

@GetMapping("/search-slips/{servicePointId}")
StaffSlipCollection getSearchSlips(@PathVariable ("servicePointId") String servicePointId);
SearchSlipCollection getSearchSlips(@PathVariable ("servicePointId") String servicePointId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import org.folio.circulationbff.domain.dto.AllowedServicePoints;
import org.folio.circulationbff.domain.dto.BffRequest;
import org.folio.circulationbff.domain.dto.EcsTlr;
import org.folio.circulationbff.domain.dto.StaffSlipCollection;
import org.folio.circulationbff.domain.dto.PickSlipCollection;
import org.folio.circulationbff.domain.dto.SearchSlipCollection;
import org.folio.circulationbff.domain.dto.TlrSettings;
import org.folio.spring.config.FeignClientConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
Expand All @@ -27,8 +28,8 @@ public interface EcsTlrClient {
EcsTlr createRequest(@RequestBody BffRequest request);

@GetMapping("/staff-slips/pick-slips/{servicePointId}")
StaffSlipCollection getPickSlips(@PathVariable("servicePointId") String servicePointId);
PickSlipCollection getPickSlips(@PathVariable("servicePointId") String servicePointId);

@GetMapping("/staff-slips/search-slips/{servicePointId}")
StaffSlipCollection getSearchSlips(@PathVariable ("servicePointId") String servicePointId);
SearchSlipCollection getSearchSlips(@PathVariable ("servicePointId") String servicePointId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
import org.folio.circulationbff.domain.dto.BffSearchInstance;
import org.folio.circulationbff.domain.dto.EmptyBffSearchInstance;
import org.folio.circulationbff.domain.dto.MediatedRequest;
import org.folio.circulationbff.domain.dto.PickSlipCollection;
import org.folio.circulationbff.domain.dto.Request;
import org.folio.circulationbff.domain.dto.StaffSlipCollection;
import org.folio.circulationbff.domain.dto.SearchSlipCollection;
import org.folio.circulationbff.domain.dto.UserCollection;
import org.folio.circulationbff.rest.resource.CirculationBffApi;
import org.folio.circulationbff.service.CirculationBffService;
Expand All @@ -38,15 +39,15 @@ public class CirculationBffController implements CirculationBffApi {
private final UserService userService;

@Override
public ResponseEntity<StaffSlipCollection> getPickSlips(String servicePointId) {
public ResponseEntity<PickSlipCollection> getPickSlips(String servicePointId) {
log.info("getPickSlips:: servicePointId = {}", servicePointId);

return ResponseEntity.status(HttpStatus.OK)
.body(circulationBffService.fetchPickSlipsByServicePointId(servicePointId));
}

@Override
public ResponseEntity<StaffSlipCollection> getSearchSlips(String servicePointId) {
public ResponseEntity<SearchSlipCollection> getSearchSlips(String servicePointId) {
log.info("getSearchSlips:: servicePointId = {}", servicePointId);

return ResponseEntity.status(HttpStatus.OK).body(circulationBffService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
import org.folio.circulationbff.domain.dto.AllowedServicePointParams;
import org.folio.circulationbff.domain.dto.AllowedServicePoints;
import org.folio.circulationbff.domain.dto.BffRequest;
import org.folio.circulationbff.domain.dto.PickSlipCollection;
import org.folio.circulationbff.domain.dto.Request;
import org.folio.circulationbff.domain.dto.StaffSlipCollection;
import org.folio.circulationbff.domain.dto.SearchSlipCollection;

public interface CirculationBffService {
AllowedServicePoints getAllowedServicePoints(AllowedServicePointParams allowedServicePointParams, String tenantId);
Request createRequest(BffRequest request, String tenantId);
StaffSlipCollection fetchPickSlipsByServicePointId(String servicePointId);
StaffSlipCollection fetchSearchSlipsByServicePointId(String servicePointId);
PickSlipCollection fetchPickSlipsByServicePointId(String servicePointId);
SearchSlipCollection fetchSearchSlipsByServicePointId(String servicePointId);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.folio.circulationbff.service;

public interface SettingsService {
boolean isEcsTlrFeatureEnabled();
boolean isEcsTlrFeatureEnabled(String tenantId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
import org.folio.circulationbff.domain.dto.AllowedServicePoints;
import org.folio.circulationbff.domain.dto.BffRequest;
import org.folio.circulationbff.domain.dto.EcsTlr;
import org.folio.circulationbff.domain.dto.PickSlipCollection;
import org.folio.circulationbff.domain.dto.Request;
import org.folio.circulationbff.domain.dto.StaffSlipCollection;
import org.folio.circulationbff.domain.dto.SearchSlipCollection;
import org.folio.circulationbff.service.CirculationBffService;
import org.folio.circulationbff.service.SettingsService;
import org.folio.circulationbff.service.UserTenantsService;
Expand All @@ -27,27 +28,35 @@ public class CirculationBffServiceImpl implements CirculationBffService {
private final UserTenantsService userTenantsService;

@Override
public StaffSlipCollection fetchPickSlipsByServicePointId(String servicePointId) {
public PickSlipCollection fetchPickSlipsByServicePointId(String servicePointId) {
log.info("fetchPickSlipsByServicePointId:: servicePointId: {}", servicePointId);
boolean isEcsTlrFeatureEnabled = settingsService.isEcsTlrFeatureEnabled();
log.info("fetchPickSlipsByServicePointId:: isEcsTlrFeatureEnabled: {}",
isEcsTlrFeatureEnabled);

return isEcsTlrFeatureEnabled
? ecsTlrClient.getPickSlips(servicePointId)
: circulationClient.getPickSlips(servicePointId);
PickSlipCollection pickSlips = null;
if(shouldFetchStaffSlipsFromModTlr()) {
log.info("fetchPickSlipsByServicePointId:: BEFORE TLR CLIENT client; pickSlips: {}", pickSlips);
pickSlips = ecsTlrClient.getPickSlips(servicePointId);
log.info("fetchPickSlipsByServicePointId:: AFTER TLR CLIENT client; pickSlips: {}", pickSlips);
} else {
log.info("fetchPickSlipsByServicePointId:: BEFORE CIRCULATION CLIENT client; pickSlips: {}", pickSlips);
pickSlips = circulationClient.getPickSlips(servicePointId);
log.info("fetchPickSlipsByServicePointId:: AFTER CIRCULATION CLIENT client; pickSlips: {}", pickSlips);
}
return pickSlips;
}

@Override
public StaffSlipCollection fetchSearchSlipsByServicePointId(String servicePointId) {
public SearchSlipCollection fetchSearchSlipsByServicePointId(String servicePointId) {
log.info("fetchSearchSlipsByServicePointId:: servicePointId: {}", servicePointId);
boolean isEcsTlrFeatureEnabled = settingsService.isEcsTlrFeatureEnabled();
log.info("fetchSearchSlipsByServicePointId:: isEcsTlrFeatureEnabled: {}",
isEcsTlrFeatureEnabled);

return isEcsTlrFeatureEnabled
? ecsTlrClient.getSearchSlips(servicePointId)
: circulationClient.getSearchSlips(servicePointId);
SearchSlipCollection searchSlips = null;
if(shouldFetchStaffSlipsFromModTlr()) {
log.info("fetchSearchSlipsByServicePointId:: BEFORE TLR CLIENT client; searchSlips: {}", searchSlips);
searchSlips = ecsTlrClient.getSearchSlips(servicePointId);
log.info("fetchSearchSlipsByServicePointId:: AFTER TLR CLIENT client; searchSlips: {}", searchSlips);
} else {
log.info("fetchSearchSlipsByServicePointId:: BEFORE CIRCULATION CLIENT client; searchSlips: {}", searchSlips);
searchSlips = circulationClient.getSearchSlips(servicePointId);
log.info("fetchSearchSlipsByServicePointId:: AFTER CIRCULATION CLIENT client; searchSlips: {}", searchSlips);
}
return searchSlips;
}

@Override
Expand Down Expand Up @@ -76,4 +85,14 @@ public Request createRequest(BffRequest request, String tenantId) {
return circulationClient.createRequest(request);
}
}

private boolean shouldFetchStaffSlipsFromModTlr() {
boolean isCentralTenant = userTenantsService.isCentralTenant();
boolean ecsTlrFeatureIsEnabledInModTlr = false;
if (isCentralTenant) {
ecsTlrFeatureIsEnabledInModTlr = ecsTlrClient.getTlrSettings().getEcsTlrFeatureEnabled();
}
log.info("shouldFetchStaffSlipsFromModTlr:: {}", ecsTlrFeatureIsEnabledInModTlr);
return ecsTlrFeatureIsEnabledInModTlr;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,6 @@ public class SettingsServiceImpl implements SettingsService {
private final CirculationClient circulationClient;
private final UserTenantsService userTenantsService;

@Override
public boolean isEcsTlrFeatureEnabled() {
return userTenantsService.isCentralTenant()
? ecsTlrClient.getTlrSettings().getEcsTlrFeatureEnabled()
: isTlrEnabledInCirculationSettings();
}

@Override
public boolean isEcsTlrFeatureEnabled(String tenantId) {
if (userTenantsService.isCentralTenant(tenantId)) {
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ folio:
password: ${SYSTEM_USER_PASSWORD:mod-circulation-bff}
lastname: System
permissionsFilePath: permissions/mod-circulation-bff.csv
logging:
feign:
enabled: true
level: full
management:
endpoints:
web:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ get:
content:
application/json:
schema:
$ref: '../../responses/externalUsersResponse.yaml'
$ref: '../../schemas/response/userCollection.json'
'404':
$ref: '../../responses/notFoundResponse.yaml'
'422':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ get:
content:
application/json:
schema:
$ref: '../../responses/staffSlipsResponse.yaml'
$ref: '../../schemas/dto/staffSlips/pickSlipCollection.yaml'
'404':
$ref: '../../responses/notFoundResponse.yaml'
'422':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ get:
content:
application/json:
schema:
$ref: '../../responses/staffSlipsResponse.yaml'
$ref: '../../schemas/dto/staffSlips/searchSlipCollection.yaml'
'404':
$ref: '../../responses/notFoundResponse.yaml'
'422':
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
description: Collection of staff slips
description: Collection of pick slips
type: object
properties:
totalRecords:
type: integer
description: Total number of staff slips
staffSlips:
description: Total number of pick slips
pickSlips:
type: array
items:
$ref: "staffSlip.yaml"
required:
- totalRecords
- staffSlips
- pickSlips
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Collection of search slips
type: object
properties:
totalRecords:
type: integer
description: Total number of search slips
searchSlips:
type: array
items:
$ref: "staffSlip.yaml"
required:
- totalRecords
- searchSlips
Loading