...
Workflow diagram
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
The process of remote registration for LC is based on the interaction of a patron with a pre-registration form through Locate UI. To support the flow Locate should be able to verify the patron’s email address.
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Macro openapi | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
openapi: 3.0.3 info: title: Patron creation description: Edge API for creation of patron account through web-form version: 1.0.0 servers: - url: 'https://github.com/folio-org/mod-patron' paths: /patron/account/{email}: get: description: Get patron account by email tags: - patron parameters: - in: path name: email schema: type: string required: true responses: 201: $ref: "#/components/requestBodies/PatronAccountRequest" 404: $ref: '#/components/responses/NotFound' put: description: Update Patron Account by email operationId: updatePatronByEmail tags: - patron parameters: - in: path name: email schema: type: string required: true requestBody: $ref: "#/components/requestBodies/PatronAccountRequest" responses: 201: $ref: "#/components/requestBodies/PatronAccountRequest" 404: $ref: '#/components/responses/NotFound' 400: $ref: '#/components/responses/BadRequest' 500: $ref: '#/components/responses/InternalServerError' /patron/account: get: description: Get Expired records operationId: getExpiredRecords tags: - patron parameters: - in: query name: expired description: flag to fetch expired records required: true responses: 201: #TODOdescription: Don'tA needJSON toarray returnof alluser fieldsnames for expired record descriptioncontent: A JSON array of user names content: applicationapplication/json: schema: type: array items: $ref: "#/components/requestBodiesschemas/PatronAccountRequestExpiredPatronAccount" 404: $ref: '#/components/responses/NotFound' 400: $ref: '#/components/responses/BadRequest' 500: $ref: '#/components/responses/InternalServerError' post: description: Create Patron Account operationId: createPatron tags: - patron requestBody: $ref: "#/components/requestBodies/PatronAccountRequest" responses: 201: $ref: "#/components/requestBodies/PatronAccountRequest" 404: $ref: '#/components/responses/NotFound' 400: $ref: '#/components/responses/BadRequest' 500: $ref: '#/components/responses/InternalServerError' components: schemas: PatronAccountExpiredPatronAccount: #TODOtype: Removeobject fields according to latest updates from LoCdescription: Information on expired patron accoun type: object properties: description: Information for patron registration for web-formexternalSystemId: required: description: External System ID - generalInfo type: -string address0 firstName: - contactInfo -description: preferencesFirst Name - userType type: string properties: generalInfopreferredFirstName: description: Preferred GeneralFirst infoName type: string object middleName: required: description: Middle Name - firstName type: string - lastName: propertiesdescription: Last Name externalSystemIdtype: string email: description: External System ID description: Email Address type: string expirationDate: title: description: Expiration Date description: Title type: string typeformat: stringdate PatronAccount: firstNametype: object description: Information for patron registration for web-form description: First Name required: - generalInfo type: string - address0 middleName: - contactInfo - description:preferences Middle Name - userType typeproperties: string generalInfo: lastName: description: General info description: Last Name type: object typerequired: string address0: - firstName description: Current address/Address 0 - lastName type: object properties: addressLine0externalSystemId: description: CurrentExternal Address/Address line 0System ID type: string addressLine1firstName: description: CurrentFirst Address/AddressName line 1 type: string citypreferredFirstName: description: Preferred First CityName type: string provincemiddleName: description: State/ProvinceMiddle Name type: string ziplastName: description: Zip/PostalLast CodeName type: string address0: country: description: Current address/Address 0 description: Country type: object type: string properties: address1: addressLine0: description: Address on Photo ID/Address 1 (optional) description: Current Address/Address line 0 type: object type: properties:string addressLine0addressLine1: description: Current Address/Address line 01 type: string addressLine1city: description: CurrentCity Address/Address line 1 type: string cityprovince: description: CityState/Province type: string provincezip: description: StateZip/ProvincePostal Code type: string zipcountry: description: Zip/PostalCountry Code type: string country: address1: description: CountryAddress on Photo ID/Address 1 (optional) type: object string contactInfoproperties: description: Contact infoaddressLine0: type: object description: Current Address/Address line 0 required: type: string addressLine1: - homePhone description: Current Address/Address line 1 - email propertiestype: string homePhone city: description: HomeCity Phone type: string mobilePhoneprovince: description: Mobile PhoneState/Province type: string localPhonezip: description: LocalZip/Postal PhoneCode type: string emailcountry: description: EmailCountry Address type: string preferencescontactInfo: typedescription: objectContact info descriptiontype: Preferencesobject propertiesrequired: serviceEmailAlertsEnabled:- phone - description:email I would like to receive email communications from the Library of Congress aboutproperties: service requests and alerts, research information, and surveys related to doing research atphone: the Library. description: Phone type:Number boolean defaulttype: falsestring programEmailAlertsEnabledmobilePhone: description: I would like to receive email communications from the Library of Congress about other Library programs (concerts, exhibits, lectures, etc.), customer surveys, and other services available to the general public.Mobile Phone type: booleanstring default: false email: supportEmailAlertsEnabled: description: Email IAddress would like to receive email communications from the Library of Congress about how I mighttype: supportstring the Library. preferences: type: boolean type: object defaultdescription: falsePreferences userTypeproperties: description: User TypeserviceEmailAlertsEnabled: type: object description: I would like to receive email communications required:from the Library of Congress about service requests and alerts, research information, and -surveys agerelated to doing research at the Library. - use type: boolean properties: agedefault: false descriptionprogramEmailAlertsEnabled: Age typedescription: integerI would like to receive email communications from the Library of Congress about use:other Library programs (concerts, exhibits, lectures, etc.), customer surveys, and other services available to the default:general Use (Academic/personal) public. type: string boolean default: false enum: [ "ACADEMIC", "PERSONAL" ] supportEmailAlertsEnabled: academicStatus: description: I would like to receive email communications from description:the AcademicLibrary Statusof (requiredCongress ifabout "use"how isI ACADEMIC)might support the Library. institution: type: boolean description: Academic Institution (required if "use" isdefault: ACADEMIC)false Error: description: "An error" type: object properties: message: type: string minLength: 1 description: "Error message text" type: type: string description: "Error message type" code: type: string description: "Error message code" additionalProperties: false required: - message requestBodies: PatronAccountRequest: content: application/json: schema: $ref: "#/components/schemas/PatronAccount" responses: PatronAccountResponse: description: SuccessfulResult content: application/json: schema: $ref: "#/components/schemas/PatronAccount" NotFound: description: Resource not found content: application/json: schema: $ref: "#/components/schemas/Error" BadRequest: description: Bad request content: application/json: schema: $ref: "#/components/schemas/Error" InternalServerError: description: Internal server error content: application/json: schema: $ref: "#/components/schemas/Error" |
Configuration Settings
The solution should provide a UI screen to map values for externally created patron accounts to correct FOLIO values:
Patron group: FOLIO User should be able to select existing patron group for new patrons
Expiration date: FOLIO User should be able to select the existing patron group for new patrons
For user type and status the solution should provide related defaults described in prod ticket
The solution should provide a UI setting for the one-time operation to create LoC-required custom fields. The list of custom fields is attached to
Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key UXPROD-4663