# Lånerindstillinger

8 af 11 understøttet
Kilde: https://plasapi.com/da/funktioner/patron/patron-settings/

Lad lånerne selv holde deres konto ajour: kontaktoplysninger, hvor de henter, hvordan de får besked, hvad de giver samtykke til, og deres adgangskode.

## 2.11.1 Skift foretrukket afhentningssted — Understøttet

Lad låneren vælge hvor deres reservationer som standard skal hentes.

### Det kan du bygge

Lånerne vælger deres faste bibliotek én gang, og nye reservationer går dertil, medmindre de vælger andet (2.5.8).

### Typisk flow

1. Klienten læser de steder låneren må vælge mellem fra `GetPatronConfiguration`, ellers fra `GetLocations`.
2. Låneren vælger en filial og, hvis den har nogen, en afdeling i den.
3. Klienten gemmer valget som `pickupLocation` med `UpdatePatronInformation`.

### Det leverer API'et

- Er `reservation.pickupLocations` sat i `GetPatronConfiguration`, også som en tom liste, erstatter den stederne fra `GetLocations`.
- Et afhentningssted kan være en afdeling inde i en filial.
- `pickupLocation` i `patron.fields` fra `GetConfiguration` har formen `branch_id_and_sections` (standard) eller `only_branch_id`.

### Kald i API'et

Forudsætter: 2.2.1

I denne rækkefølge

1. [GET /patron/{patronId}/configuration](https://plasapi.com/da/provider/v0.6.7/patron-configuration/#GetPatronConfiguration) — Get patron configuration
2. [GET /locations](https://plasapi.com/da/provider/v0.6.7/location/#GetLocations) — Get locations
3. [PATCH /patron/{patronId}/information](https://plasapi.com/da/provider/v0.6.7/patron/#UpdatePatronInformation) — Update patron information

## 2.11.2 Skift e-mail — Understøttet

Lad låneren tilføje eller ændre de e-mailadresser biblioteket bruger til at kontakte dem.

### Det kan du bygge

Lånerne holder selv deres e-mailadresse ajour, så biblioteket kan kontakte dem og, hvor bibliotekssystemet understøtter det, sende påmindelser på e-mail.

### Typisk flow

1. Klienten viser lånerens adresser fra `GetPatronInformation`.
2. Låneren tilføjer, ændrer eller fjerner en adresse.
3. Klienten sender listen som `emails` med `UpdatePatronInformation`.

### Det leverer API'et

- Højst én adresse kan være `default`.
- `maxNumberOfEmailAddresses` i `patron.fields` fra `GetConfiguration` er det største antal adresser en låner kan have. Flere giver fejlen `100211`.
- Med `verification` sat til `verify_by_email` sender provideren en e-mail der bekræfter adressen. `verified` viser tilstanden: `yes`, `no` eller `pending`.
- Et felt der udelades i `UpdatePatronInformation`, ændres ikke. Svaret `202` betyder at opdateringen er modtaget og behandles senere.

### Kald i API'et

Forudsætter: 2.2.1

- [PATCH /patron/{patronId}/information](https://plasapi.com/da/provider/v0.6.7/patron/#UpdatePatronInformation) — Update patron information

## 2.11.3 Skift telefonnummer — Understøttet

Lad låneren tilføje eller ændre de telefonnumre biblioteket bruger til at kontakte dem.

### Det kan du bygge

Lånerne holder selv deres telefonnummer ajour, så biblioteket kan kontakte dem og, hvor bibliotekssystemet understøtter det, sende påmindelser på sms.

### Typisk flow

1. Klienten viser lånerens numre fra `GetPatronInformation`.
2. Låneren tilføjer, ændrer eller fjerner et nummer.
3. Klienten sender listen som `phoneNumbers` med `UpdatePatronInformation`.

### Det leverer API'et

- Et nummer står i E.164-format og har `type` `mobile` eller `landline`. Højst ét kan være `default`.
- `patron.fields` fra `GetConfiguration` giver det største antal numre pr. type, og om et mobilnummer bekræftes på sms (`verify_by_sms`). For mange numre giver fejlen `100215`.

### Kald i API'et

Forudsætter: 2.2.1

- [PATCH /patron/{patronId}/information](https://plasapi.com/da/provider/v0.6.7/patron/#UpdatePatronInformation) — Update patron information

## 2.11.4 Skift notifikationsindstillinger — Understøttet

Lad låneren vælge hvilke notifikationer de får, og hvordan.

### Det kan du bygge

En indstillingsside med en kontakt for hver slags notifikation, så lånerne kun får de påmindelser de vil have, ad den kanal de foretrækker.

### Typisk flow

1. Klienten henter indstillingerne med `GetPatronNotificationSettings`.
2. Hver notifikationstype vises med de leveringsmetoder den tilbyder, og dem låneren har valgt.
3. Låneren ændrer et valg, og klienten sender det med `UpdatePatronNotificationSettings`.

### Det leverer API'et

- Leveringsmetoderne er `sms`, `email`, `postal` og `vendor`. Med `vendor` går hændelsen til din egen backend (2.9.1).
- `delivery.methods` er det typen tilbyder; `delivery.chosen` er det låneren har valgt.
- `category` foreslår hvordan typerne kan grupperes på skærmen.
- Kun de typer der står i forespørgslen, ændres. Opdateringen gennemføres helt eller slet ikke, og svaret indeholder alle indstillinger.

### Kald i API'et

Forudsætter: 2.2.1

I denne rækkefølge

1. [GET /patron/{patronId}/notification-settings](https://plasapi.com/da/provider/v0.6.7/patron/#GetPatronNotificationSettings) — Get patron notifications settings
2. [PATCH /patron/{patronId}/notification-settings](https://plasapi.com/da/provider/v0.6.7/patron/#UpdatePatronNotificationSettings) — Update one or more patron notification settings

## 2.11.5 Administrér samtykker — Understøttet

Lad låneren give eller trække et samtykke tilbage, for eksempel til at gemme deres lånehistorik.

### Typisk flow

1. Klienten henter samtykkerne med `GetPatronConsents`.
2. Låneren giver eller trækker et samtykke tilbage.
3. Klienten sender valget med `UpdatePatronConsent`.

### Det leverer API'et

- `available` viser hvert samtykke med dets nyeste `version`. `evaluated` indeholder hvad låneren har valgt, og for hvilken version.
- Den kendte samtykketype er `loan_history` (2.8.1). Providere kan tilbyde andre.
- Kun de samtykker der står i forespørgslen, ændres. Opdateringen gennemføres helt eller slet ikke.

### Kald i API'et

Forudsætter: 2.2.1

I denne rækkefølge

1. [GET /patron/{patronId}/consent](https://plasapi.com/da/provider/v0.6.7/patron/#GetPatronConsents) — Get patron consents
2. [PATCH /patron/{patronId}/consent](https://plasapi.com/da/provider/v0.6.7/patron/#UpdatePatronConsent) — Update one or more patron consent(s)

## 2.11.6 Slet låner — Understøttet

Lad låneren slette sin egen konto og sine personoplysninger hos biblioteket.

### Det kan du bygge

Lånerne kan bruge deres ret til sletning uden at kontakte biblioteket. Personoplysninger og lånehistorik fjernes fra bibliotekssystemet, og sletningen kan ikke fortrydes.

### Typisk flow

1. Klienten kan først se efter aktive lån (2.4.1) og ubetalte gebyrer (2.7.1). Tjekket er kun en hjælp til låneren; bibliotekssystemet afgør.
2. Låneren bekræfter at kontoen skal slettes.
3. Med adgangskode kalder klienten `DeletePatron` med lånerens ID eller identifikator og adgangskoden.
4. Med en identitetsudbyder henter klienten en URL fra `GetDeletePatronUrl`, låneren bekræfter dér, og provideren vender tilbage til `CallbackPatronDelete` med en `code`. Klienten afslutter med `DeletePatronByCodeAndCodeVerifier`.
5. Svarets `status` fortæller hvor sletningen står. Ved `waiting_for_acknowledgement` kalder klienten sletningen igen med `acknowledgement`-koden for at starte den. Status ender som `done` eller `deletion_error`.

### Det leverer API'et

- `patron.deletion` i `GetConfiguration` viser de identifikatortyper og identitetsudbydere provideren accepterer ved sletning.
- Uden identitetsudbyder kræves der altid en adgangskode.
- Flowet med identitetsudbyder bruger PKCE: `code_challenge` i det første kald, `code_verifier` i det sidste.
- Fejlen `100101` betyder at låneren stadig har noget uafklaret med biblioteket, for eksempel et lån eller et gebyr.
- Provideren kan sende hændelsen `patron_deleted` til din backend (2.9.1).

### Kald i API'et

Forudsætter: 2.2.1

Slås til i konfigurationen: `GetConfiguration`

Vælg én vej

- Direkte: [POST /patron/delete](https://plasapi.com/da/provider/v0.6.7/patron-delete/#DeletePatron) — Delete patron.
- Med single sign-on: [GET /patron/delete/identity-provider](https://plasapi.com/da/provider/v0.6.7/patron-delete/#GetDeletePatronUrl) — This will fetch a SSO URL used for patron deletion, matching the chosen identity provider.
- Med single sign-on: [GET /callbacks/patron/delete](https://plasapi.com/da/vendor/v0.6.7/callback/#CallbackPatronDelete) — Callback endpoint for Patron SSO delete.
- Med single sign-on: [POST /patron/delete/identity-provider](https://plasapi.com/da/provider/v0.6.7/patron-delete/#DeletePatronByCodeAndCodeVerifier) — Delete patron by code and code verifier from SSO deletion.

## 2.11.7 Skift adgangskode — Understøttet

Lad låneren skifte den adgangskode eller pinkode de logger ind med.

### Det kan du bygge

Lånerne skifter selv deres adgangskode eller pinkode, alt efter hvad bibliotekssystemet bruger, inde fra din tjeneste.

### Typisk flow

1. Klienten læser hvilke loginoplysninger låneren kan skifte, fra `patron.credentials.changeable` i `GetConfiguration`.
2. Låneren indtaster den nuværende værdi og den nye.
3. Klienten kalder `ChangePatronCredential` med `credential` sat til `password` eller `pin`.
4. Svaret `204` betyder at skiftet er gennemført, og at den gamle værdi ikke længere virker.

### Det leverer API'et

- Værdierne er navngivet efter loginoplysningen: `currentPassword` og `newPassword` eller `currentPin` og `newPin`. En adgangskode og en pinkode kan ikke forveksles.
- En forkert nuværende værdi giver fejlen `100001`. En ny værdi provideren ikke accepterer, giver `100011`, og info bør sige hvorfor. En loginoplysning der ikke kan skiftes, giver `100013`.
- PLAS fastsætter intet format for en adgangskode eller en pinkode.
- Provideren forventes at begrænse antallet af forsøg pr. låner og bør svare `429` frem for `400`, når grænsen er nået.
- En låner der ikke kender sin nuværende værdi, nulstiller den i stedet (2.2.5).

### Kald i API'et

Forudsætter: 2.2.1

Slås til i konfigurationen: `GetConfiguration`

- [POST /patron/{patronId}/credential/change](https://plasapi.com/da/provider/v0.6.7/patron-authentication/#ChangePatronCredential) — Change the patron's own password or pin code.

## 2.11.9 Skift sprog — Ikke endnu

Lad låneren vælge sit sprog.

> Ikke i PLAS endnu. Funktionen er ikke understøttet i dag. Beskrivelsen viser hvad den gør, så du kan se sammenhængen med resten.

## 2.11.10 Lånerens stamdata — Understøttet

Vis lånerens navn, adresse, kontaktoplysninger og hvad de har lov til.

### Det kan du bygge

En profilside med lånerens grundoplysninger, som biblioteket har dem, herunder om noget er spærret og hvorfor.

### Typisk flow

1. Klienten henter låneren med `GetPatronInformation`.
2. Profilen viser navn, adresse, e-mailadresser, telefonnumre, afhentningssted og rettigheder.

### Det leverer API'et

- `fullName` er der altid. `givenName` og `surname` kommer kun når bibliotekssystemet gemmer navnet i dele.
- `permissions` viser hvad låneren er `allowed` eller `blocked` fra, med en `reason` når noget er spærret. Foreslåede typer er `off_hours`, `self_service` og `exclusion`.

### Kald i API'et

Forudsætter: 2.2.1

- [GET /patron/{patronId}/information](https://plasapi.com/da/provider/v0.6.7/patron/#GetPatronInformation) — Get patron information

## 2.11.11 Redigér lånerens stamdata — Ikke endnu

Lad låneren redigere sine stamdata.

> Ikke i PLAS endnu. Funktionen er ikke understøttet i dag. Beskrivelsen viser hvad den gør, så du kan se sammenhængen med resten.

## 2.11.12 Vis privatlivspolitik — Ikke endnu

Vis tjenestens privatlivspolitik.

> Ikke i PLAS endnu. Funktionen er ikke understøttet i dag. Beskrivelsen viser hvad den gør, så du kan se sammenhængen med resten.
