Skip to content

Commit

Permalink
MODDCB-90 Accept existing circulation request ID
Browse files Browse the repository at this point in the history
  • Loading branch information
MagzhanArtykov committed Mar 4, 2024
1 parent 287d750 commit 25ceb19
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.folio.dcb.domain.dto.DcbTransaction;
import org.folio.dcb.domain.dto.TransactionStatusResponse;
import org.folio.dcb.rest.resource.EcsRequestTransactionsApi;
import org.folio.dcb.service.EcsTlrTransactionsService;
import org.folio.dcb.service.EcsRequestTransactionsService;
import org.folio.dcb.service.TransactionAuditService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -14,22 +14,22 @@
@RestController
@Log4j2
@RequiredArgsConstructor
public class EcsTlrTransactionApiController implements EcsRequestTransactionsApi {
public class EcsRequestTransactionsApiController implements EcsRequestTransactionsApi {

private final EcsTlrTransactionsService ecsTlrTransactionsService;
private final EcsRequestTransactionsService ecsRequestTransactionsService;
private final TransactionAuditService transactionAuditService;

@Override
public ResponseEntity<TransactionStatusResponse> createEcsRequestTransactions(
String ecsTlrTransactionsId, DcbTransaction dcbTransaction) {
log.info("createEcsTlrTransaction:: creating ECS TLR Transaction {} with id {} ",
dcbTransaction, ecsTlrTransactionsId);
String ecsRequestTransactionId, DcbTransaction dcbTransaction) {
log.info("createEcsRequestTransactions:: creating ECS Request Transaction {} with ID {}",
dcbTransaction, ecsRequestTransactionId);
TransactionStatusResponse transactionStatusResponse;
try {
transactionStatusResponse = ecsTlrTransactionsService.createEcsTlrTransactions(
ecsTlrTransactionsId, dcbTransaction);
transactionStatusResponse = ecsRequestTransactionsService.createEcsRequestTransactions(
ecsRequestTransactionId, dcbTransaction);
} catch (Exception ex) {
transactionAuditService.logErrorIfTransactionAuditNotExists(ecsTlrTransactionsId,
transactionAuditService.logErrorIfTransactionAuditNotExists(ecsRequestTransactionId,
dcbTransaction, ex.getMessage());
throw ex;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.folio.dcb.service;

import org.folio.dcb.domain.dto.DcbTransaction;
import org.folio.dcb.domain.dto.TransactionStatusResponse;

public interface EcsRequestTransactionsService {
TransactionStatusResponse createEcsRequestTransactions(String ecsRequestTransactionsId,
DcbTransaction dcbTransaction);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,26 @@
import org.folio.dcb.exception.ResourceAlreadyExistException;
import org.folio.dcb.repository.TransactionRepository;
import org.folio.dcb.service.CirculationRequestService;
import org.folio.dcb.service.EcsTlrTransactionsService;
import org.folio.dcb.service.EcsRequestTransactionsService;
import org.folio.dcb.utils.RequestStatus;
import org.springframework.stereotype.Service;
import static org.folio.dcb.domain.dto.DcbTransaction.RoleEnum.LENDER;

@Service
@RequiredArgsConstructor
@Log4j2
public class EcsTlrTransactionsServiceImpl implements EcsTlrTransactionsService {
public class EcsRequestTransactionsServiceImpl implements EcsRequestTransactionsService {

private final BaseLibraryService baseLibraryService;
private final TransactionRepository transactionRepository;
private final CirculationRequestService circulationRequestService;

@Override
public TransactionStatusResponse createEcsTlrTransactions(String ecsTlrTransactionsId,
DcbTransaction dcbTransaction) {
log.info("createCirculationRequest:: creating new transaction request for role {} ",
public TransactionStatusResponse createEcsRequestTransactions(String ecsRequestTransactionsId,
DcbTransaction dcbTransaction) {
log.info("createEcsRequestTransactions:: creating new transaction request for role {} ",
dcbTransaction.getRole());
checkEcsTransactionExistsAndThrow(ecsTlrTransactionsId);
checkEcsRequestTransactionExistsAndThrow(ecsRequestTransactionsId);
CirculationRequest circulationRequest = circulationRequestService.fetchRequestById(
dcbTransaction.getRequestId());
if(circulationRequest != null && RequestStatus.isRequestOpen(
Expand All @@ -47,7 +47,7 @@ public TransactionStatusResponse createEcsTlrTransactions(String ecsTlrTransacti
dcbTransaction.setPickup(DcbPickup.builder()
.servicePointId(String.valueOf(circulationRequest.getPickupServicePointId()))
.build());
baseLibraryService.saveDcbTransaction(ecsTlrTransactionsId, dcbTransaction,
baseLibraryService.saveDcbTransaction(ecsRequestTransactionsId, dcbTransaction,
dcbTransaction.getRequestId());
} else {
throw new IllegalArgumentException("Unimplemented role: " + dcbTransaction.getRole());
Expand All @@ -62,7 +62,7 @@ public TransactionStatusResponse createEcsTlrTransactions(String ecsTlrTransacti
}
}

private void checkEcsTransactionExistsAndThrow(String dcbTransactionId) {
private void checkEcsRequestTransactionExistsAndThrow(String dcbTransactionId) {
if (transactionRepository.existsById(dcbTransactionId)) {
throw new ResourceAlreadyExistException(
String.format("unable to create ECS transaction with ID %s as it already exists",
Expand Down
8 changes: 4 additions & 4 deletions src/main/resources/swagger.api/dcb_transaction.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,15 @@ paths:
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/ecs-request-transactions/{ecsTlrTransactionId}:
/ecs-request-transactions/{ecsRequestTransactionId}:
description: ECS TLR Transaction endpoint
post:
description: Create transaction for existing circulation TLR
operationId: createEcsRequestTransactions
tags:
- ecs-tlr-transaction
parameters:
- $ref: '#/components/parameters/ecsTlrTransactionId'
- $ref: '#/components/parameters/ecsRequestTransactionId'
requestBody:
$ref: "#/components/requestBodies/DCBTransaction"
responses:
Expand Down Expand Up @@ -147,9 +147,9 @@ components:
schema:
type: string
required: true
ecsTlrTransactionId:
ecsRequestTransactionId:
in: path
name: ecsTlrTransactionId
name: ecsRequestTransactionId
schema:
type: string
required: true
Expand Down

0 comments on commit 25ceb19

Please sign in to comment.