@@ -354,13 +354,12 @@ private Future<PatronStatusResponse> validPatron(ExtendedUser extendedUser,
354354 feeFinesRepository .getManualBlocksByUserId (userId , sessionData ),
355355 feeFinesRepository .getAutomatedBlocksByUserId (userId , sessionData ))
356356 .map (cf -> {
357- final JsonObject manualBlocks = cf .resultAt (0 );
358- final JsonObject automatedBlocks = cf .resultAt (1 );
359- final EnumSet <PatronStatus > patronStatusFlags =
360- extractPatronStatusFromBlocks (manualBlocks );
357+ var manualBlocks = (JsonObject ) cf .resultAt (0 );
358+ var automatedBlocks = (JsonObject ) cf .resultAt (1 );
359+ var patronStatusFlags = extractPatronStatusFromBlocks (manualBlocks );
361360 patronStatusFlags .addAll (extractPatronStatusFromAutomatedBlocks (automatedBlocks ));
362361 builder .patronStatus (patronStatusFlags );
363- final List < String > messages = new ArrayList <>(extractBlockMessages (manualBlocks ));
362+ var messages = new ArrayList <>(extractBlockMessages (manualBlocks ));
364363 messages .addAll (extractAutomatedBlockMessages (automatedBlocks ));
365364 if (!messages .isEmpty ()) {
366365 builder .screenMessage (messages );
@@ -498,24 +497,16 @@ private PatronInformationResponseBuilder buildPatronStatus(JsonObject manualBloc
498497 }
499498
500499 private static EnumSet <PatronStatus > extractPatronStatusFromAutomatedBlocks (JsonObject blocks ) {
501- final EnumSet < PatronStatus > patronStatus = EnumSet .noneOf (PatronStatus .class );
500+ final var patronStatus = EnumSet .noneOf (PatronStatus .class );
502501
503502 if (blocks != null && blocks .getInteger (FIELD_TOTAL_RECORDS , 0 ) > 0 ) {
504503 blocks .getJsonArray ("automatedPatronBlocks" , new JsonArray ()).stream ()
505504 .map (o -> (JsonObject ) o )
506- .forEach (jo -> {
507- if (TRUE .equals (jo .getBoolean ("blockBorrowing" , FALSE ))) {
508- patronStatus .addAll (EnumSet .allOf (PatronStatus .class ));
509- } else {
510- if (TRUE .equals (jo .getBoolean ("blockRenewals" , FALSE ))) {
511- patronStatus .add (RENEWAL_PRIVILEGES_DENIED );
512- }
513- if (TRUE .equals (jo .getBoolean ("blockRequests" , FALSE ))) {
514- patronStatus .add (HOLD_PRIVILEGES_DENIED );
515- patronStatus .add (RECALL_PRIVILEGES_DENIED );
516- }
517- }
518- });
505+ .map (jo -> toBlockStatusFlags (
506+ jo .getBoolean ("blockBorrowing" , FALSE ),
507+ jo .getBoolean ("blockRenewals" , FALSE ),
508+ jo .getBoolean ("blockRequests" , FALSE )))
509+ .forEach (patronStatus ::addAll );
519510 }
520511
521512 return patronStatus ;
@@ -528,43 +519,55 @@ protected static List<String> extractAutomatedBlockMessages(JsonObject blocks) {
528519
529520 return blocks .getJsonArray ("automatedPatronBlocks" , new JsonArray ()).stream ()
530521 .map (o -> (JsonObject ) o )
531- .filter (jo -> jo .getBoolean ("blockBorrowing" , FALSE )
532- || jo .getBoolean ("blockRenewals" , FALSE )
533- || jo .getBoolean ("blockRequests" , FALSE ))
534- .map (jo -> {
535- final String message = jo .getString ("message" );
536- if (StringUtils .isNotBlank (message )) {
537- return message ;
538- }
539- return MESSAGE_BLOCKED_PATRON ;
540- })
522+ .filter (PatronRepository ::hasAnyAutomatedBlock )
523+ .map (PatronRepository ::resolveAutomatedBlockMessage )
541524 .toList ();
542525 }
543526
527+ private static boolean hasAnyAutomatedBlock (JsonObject jo ) {
528+ return jo .getBoolean ("blockBorrowing" , FALSE )
529+ || jo .getBoolean ("blockRenewals" , FALSE )
530+ || jo .getBoolean ("blockRequests" , FALSE );
531+ }
532+
533+ private static String resolveAutomatedBlockMessage (JsonObject jo ) {
534+ var message = jo .getString ("message" );
535+ return StringUtils .isNotBlank (message ) ? message : MESSAGE_BLOCKED_PATRON ;
536+ }
537+
544538 private static EnumSet <PatronStatus > extractPatronStatusFromBlocks (JsonObject blocks ) {
545- final EnumSet < PatronStatus > patronStatus = EnumSet .noneOf (PatronStatus .class );
539+ final var patronStatus = EnumSet .noneOf (PatronStatus .class );
546540
547541 if (blocks != null && blocks .getInteger (FIELD_TOTAL_RECORDS , 0 ) > 0 ) {
548542 blocks .getJsonArray ("manualblocks" , new JsonArray ()).stream ()
549543 .map (o -> (JsonObject ) o )
550- .forEach (jo -> {
551- if (jo .getBoolean ("borrowing" , FALSE )) {
552- patronStatus .addAll (EnumSet .allOf (PatronStatus .class ));
553- } else {
554- if (jo .getBoolean ("renewals" , FALSE )) {
555- patronStatus .add (RENEWAL_PRIVILEGES_DENIED );
556- }
557- if (jo .getBoolean (FIELD_REQUESTS , FALSE )) {
558- patronStatus .add (HOLD_PRIVILEGES_DENIED );
559- patronStatus .add (RECALL_PRIVILEGES_DENIED );
560- }
561- }
562- });
544+ .map (jo -> toBlockStatusFlags (
545+ jo .getBoolean ("borrowing" , FALSE ),
546+ jo .getBoolean ("renewals" , FALSE ),
547+ jo .getBoolean (FIELD_REQUESTS , FALSE )))
548+ .forEach (patronStatus ::addAll );
563549 }
564550
565551 return patronStatus ;
566552 }
567553
554+ private static EnumSet <PatronStatus > toBlockStatusFlags (
555+ boolean borrowing , boolean renewals , boolean requests ) {
556+ var flags = EnumSet .noneOf (PatronStatus .class );
557+ if (borrowing ) {
558+ flags .addAll (EnumSet .allOf (PatronStatus .class ));
559+ } else {
560+ if (renewals ) {
561+ flags .add (RENEWAL_PRIVILEGES_DENIED );
562+ }
563+ if (requests ) {
564+ flags .add (HOLD_PRIVILEGES_DENIED );
565+ flags .add (RECALL_PRIVILEGES_DENIED );
566+ }
567+ }
568+ return flags ;
569+ }
570+
568571 protected static List <String > extractBlockMessages (JsonObject blocks ) {
569572 if (blocks == null || blocks .getInteger (FIELD_TOTAL_RECORDS , 0 ) == 0 ) {
570573 return Collections .emptyList ();
@@ -576,11 +579,11 @@ protected static List<String> extractBlockMessages(JsonObject blocks) {
576579 || jo .getBoolean ("renewals" , FALSE )
577580 || jo .getBoolean (FIELD_REQUESTS , FALSE ))
578581 .map (jo -> {
579- final String patronMessage = jo .getString ("patronMessage" );
582+ var patronMessage = jo .getString ("patronMessage" );
580583 if (StringUtils .isNotBlank (patronMessage )) {
581584 return patronMessage ;
582585 }
583- final String desc = jo .getString ("desc" );
586+ var desc = jo .getString ("desc" );
584587 if (StringUtils .isNotBlank (desc )) {
585588 return desc ;
586589 }
0 commit comments