Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • FOLIO

    • edge-patron

      • POST /patron - Supports upsert to stagingcreating Tier 1 record in the staging table and returns externalSystemId

      • PUT /patron/{externalSystemId} - supports update operation for staging records independently of the Tier

      • GET /patron-registration-status - query by Email Address or by externalSystemId (New End point)

        • Checks Check FOLIO Users (only look for type “Patron“)

          • When multiple active records are found in FOLIO (only for querying by email)

            • Return 400 - (With Message indicating that multiple records were found)

          • When record is found in FOLIO

            • Return 200 - If active

            • Return 404 - If inactive (With Message indicating that its expired)

          • When record is NOT found in FOLIO

            • Return 404 - (With Message indicating that its NOT FOUND)

  • Locate

    • Frontend

      • Display expiration message when Tier 2 account has expired upon login

      • Hide pre-registration link for Tier 2 patron

      • On-site registration form

    • Backend

      • Listen for kafka messages

...

  • How to handle scenario where a staff is using the same email address multiple times (Patron and Staff accounts)?

  • Captcha required ?

  • What happens when an active patron loses library card ?

  • Is there a need to verify email for walk in onsite registration ?

  • Can we send error codes with 404 along with text ?

    • Yes, we can do it

  • What exactly will happen when the patron account is renewed?

  • This might get complicated when we deal with SSO and Native Auth using username/password. Which record actually controls the expiration ? Will it be FOLIO or Locate ?

  • Can we remove kafka by updating patron record upon login and when the patron-registration-status returns a 200

Login Use cases

Case 1 - When Tier 1 Patron logs in - Reviewed

  • Call edge-patron (GET /patron-registration-status by externalSystemId) to check the active status of patron Returns 404

  • Display link to pre-register

Case 2 - When Tier 2 Patron logs in - Reviewed

  • Call edge-patron (GET /patron-registration-status by externalSystemId) to check the active status of patron Returns 200

  • Hide link to pre-register

Case 3 - When Tier 2 Patron (with expired account status) logs in - Reviewed

  • Call edge-patron (GET /patron-registration-status by externalSystemId) to check the active status of the patron Returns 404 with Status Text “Account Expired“

  • Locate displays a message

  • Display link to pre-register

Case 4 - When patron registered on-site (Tier 1 + Tier 2) logs in - Reviewed

Case 5 - When a staff logs in (with 1 record in FOLIO) - TBD?

  1. Staff logins through SSO (assumption: user email as externalSystemId)

  2. Staff logins through username/password

Case 6 - When a staff logs in (with multiple accounts in FOLIO)

Case 7 - When a VIP patron logs in

Case 8 - Migrated patron logs in (both FOLIO and Locate accounts are created through migration scripts)

Registration Use cases

Case 1 - Brand New - Reviewed

  • Patron self-registers for Tier 1 without logging in

  • When the patron fills in Tier 1 registration form and submits, Locate

    • Calls edge-patron (GET /patron-registration-status by email ). Expect 404

    • Calls edge-patron (POST /patron) to create the staging record

    • Create Locate patron record with isActive set to False

    • Sends activation link to the email address

  • Patron The patron clicks activation link and gets verified

  • Locate patron record is updated to set isActive flag to true

  • Locate calls edge-patron to update staging record with patron status (Active)

  • Patron can now login as Tier 1

Case 2 - Tier 1 patron pre-registering for Tier 2 for first time

  • Call edge-patron (GET /patron-registration-status ). Call returns 404

  • Patron fills in and submits pre-registration form for Tier 2 account. Locate

    • Calls edge-patron (patron POST) to update staging record with Tier 2 data

  • Locate notifies on screen that the patron has to go on site to complete registration

  • On-Site Workflow is completed in FOLIO

  • Staging record WILL BE removed

  • FOLIO sends notification via Kafka

  • Locate listens for CREATE/UPDATE messages with the flag (new flag to introduced)

  • Locate updates patron record to indicate now that it is a Tier 2 patron and the on site registration is now complete

...