# Lån

2 af 2 understøttet
Kilde: https://plasapi.com/da/funktioner/patron/loans/

Lad lånerne holde styr på hvad de har lånt og hvornår det skal afleveres, og forny lånene selv.

## 2.4.1 Se lån — Understøttet

Vis lånerens aktuelle lån, og hvornår hvert af dem skal afleveres.

### Det kan du bygge

Et overblik der får de lån der kræver handling, til at skille sig ud: overskredne, de der skal afleveres i dag, og de der snart skal. Hvert lån fortæller om det kan fornyes, så klienten kan tilbyde fornyelse ved siden af.

### Typisk flow

1. Klienten henter lånene med `GetPatronLoans`.
2. Hvert lån vises med sin udgave og afleveringsdato, og klienten markerer lån der er overskredne eller snart skal afleveres.
3. Låneren åbner et lån for at se detaljerne eller forny det (2.4.3).

### Det leverer API'et

- `dueDate` er den seneste dato lånet skal afleveres. `createdTime` er hvornår lånet blev foretaget.
- `renew.state` er `renewable`, `not_renewable`, `renewable_later` eller `unknown`. `renew.count` er hvor mange fornyelser der er tilbage, når det kendes.
- `acquiredFrom` fortæller om lånet kommer fra `local_circulation` eller et `interlibrary_loan`, eller er `unknown`.
- `publicationMetadata` er kun reservedata, til når provideren ikke kan levere udgaven gennem `GetPublications`, for eksempel ved fjernlån.

### Kald i API'et

Forudsætter: 2.2.1

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

## 2.4.3 Forny lån — Understøttet

Forlæng et lån i stedet for at aflevere materialet.

### Det kan du bygge

Lånerne fornyer fra listen over lån eller fra selve lånet. Bliver en fornyelse afvist, giver svaret grunden, så klienten kan fortælle låneren hvorfor.

### Typisk flow

1. Klienten læser `renew.state` for hvert lån fra `GetPatronLoans`.
2. Låneren vælger et lån der kan fornyes.
3. Klienten kalder `RenewPatronLoan` med lånets `id`.
4. Lykkes det, er svaret det fornyede lån med dets `dueDate`.

### Det leverer API'et

- Tjek altid `status` i svaret: `success` eller en grund som `too_many_renewals`, `reservation_blocked_renewal`, `renewal_blocked_by_fees`, `user_blocked` eller `denied`.
- Et lån kan ikke fornyes når en anden låner har reserveret materialet. Nogle biblioteker tillader kun fornyelse et bestemt antal dage før afleveringsdatoen.
- `RenewPatronLoan` fornyer ét lån. Flere lån betyder ét kald pr. lån.

### Kald i API'et

Forudsætter: 2.2.1

I denne rækkefølge

1. [GET /patron/{patronId}/loan](https://plasapi.com/da/provider/v0.6.7/patron-loan/#GetPatronLoans) — Get patron loans
2. [PUT /patron/{patronId}/loan/{loanId}](https://plasapi.com/da/provider/v0.6.7/patron-loan/#RenewPatronLoan) — Renew loan
