openapi: 3.0.3
info:
title: Reporting API Specification
description: Reporting API Specification.
version: 1.0.0
servers:
- url: 'https://api.bokbasen.io/reporting'
description: Production
- url: 'https://api.stage.bokbasen.io/reporting'
description: Stage
paths:
/loan/tibi/v1:
post:
summary: POST TIBI loan report
operationId: postTibiLoanReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TibiLoanReport'
required: true
responses:
201:
description: Successfully registered streaming report
content:
application/json:
schema:
$ref: '#/components/schemas/LoanReportResponse'
400:
$ref: '#/components/responses/BadRequest'
413:
description: Payload is to large. 10 MB limit.
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
LoanReportResponse:
type: object
required:
- id
properties:
id:
type: string
format: uuid
description: The report ID.
TibiLoanReport:
type: object
required:
- reportInfo
- items
properties:
reportInfo:
type: object
required:
- period
properties:
id:
type: string
format: uuid
description: Report id in UUID format. Can be used to update a reports content. Must exist if used.
example: "feeada9c-af12-4733-86fe-4b60fa70b669"
period:
type: string
format: year-month
description: The period the report is for in the YYYY-mm format
example: 2024-05
items:
type: array
x-field-extra-annotation: "@lombok.Builder.Default"
items:
$ref: '#/components/schemas/TibiItem'
TibiItem:
type: object
required:
- ean
- count
- libraryUnit
- adaptedVersion
properties:
ean:
type: string
example: "9782123456789"
description: EAN of the original book you are reporting numbers for
count:
type: integer
example: "55"
description: The number of loans of the ean in the given period
libraryUnit:
type: string
description: The library where the loan happened
example: "NLB"
adaptedVersion:
$ref: '#/components/schemas/TibiAdaptedVersionInfo'
TibiAdaptedVersionInfo:
type: object
required:
- format
- availableDate
- audioContent
- textContent
- brailleContent
- speechSynthesis
properties:
reference:
type: string
description: Internal reference to product. Eg. booknumber.
example: "686512"
format:
type: string
description: The format of the edition
example: "DAISY2.0"
availableDate:
type: string
format: date
description: The date the adapted version was ready for loan
example: "2024-09-01"
ean:
type: string
description: The ean of the adapted book version if any
example: "9876543212345"
audioContent:
type: boolean
description: True if the adapted version contains audio content
example: true
textContent:
type: boolean
description: True if the adapted version contains text content
example: true
brailleContent:
type: boolean
description: True if the adapted version contains braille content
example: true
speechSynthesis:
type: boolean
description: True if the adapted version contains speech synthesis
example: true
ProblemDetail:
title: An RFC 9457 problem object
type: object
properties:
type:
type: string
format: uri-reference
title:
type: string
status:
type: integer
description: HTTP status code
minimum: 100
maximum: 599
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
responses:
BadRequest:
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetail'
security:
- bearerAuth: [ ] |