Skip to content

Commit

Permalink
Merge branch 'master' into MCBFF-20
Browse files Browse the repository at this point in the history
  • Loading branch information
alexanderkurash authored Nov 25, 2024
2 parents 1a22257 + 362fc8e commit a594749
Show file tree
Hide file tree
Showing 20 changed files with 149 additions and 205 deletions.
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 @@ -29,25 +30,17 @@ public class CirculationBffServiceImpl implements CirculationBffService {
private final SystemUserScopedExecutionService executionService;

@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
return shouldFetchStaffSlipsFromTlr()
? ecsTlrClient.getPickSlips(servicePointId)
: circulationClient.getPickSlips(servicePointId);
}

@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
return shouldFetchStaffSlipsFromTlr()
? ecsTlrClient.getSearchSlips(servicePointId)
: circulationClient.getSearchSlips(servicePointId);
}
Expand Down Expand Up @@ -85,4 +78,14 @@ public Request createRequest(BffRequest request, String tenantId) {
return circulationClient.createRequest(request);
}
}

private boolean shouldFetchStaffSlipsFromTlr() {
boolean isCentralTenant = userTenantsService.isCentralTenant();
boolean ecsTlrFeatureIsEnabledInTlr = false;
if (isCentralTenant) {
ecsTlrFeatureIsEnabledInTlr = ecsTlrClient.getTlrSettings().getEcsTlrFeatureEnabled();
}
log.info("shouldFetchStaffSlipsFromTlr:: {}", ecsTlrFeatureIsEnabledInTlr);
return ecsTlrFeatureIsEnabledInTlr;
}
}
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
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
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class CirculationBffRequestsApiTest extends BaseIT {

@Test
@SneakyThrows
void callsModTlrWhenEcsTlrEnabledInCentralTenant() {
void callsTlrWhenEcsTlrEnabledInCentralTenant() {
var userTenant = new UserTenant(UUID.randomUUID().toString(), TENANT_ID_CONSORTIUM);
userTenant.setCentralTenantId(TENANT_ID_CONSORTIUM);
mockUserTenants(userTenant, TENANT_ID_CONSORTIUM);
Expand Down
Loading

0 comments on commit a594749

Please sign in to comment.