openapi: 3.0.3
info:
  title: API for Henvendelser for Dirigenter
  description: Fælles API for oprettelse af tråde og henvendelser mellem deltagere og retterne.
  version: 1.3.0

servers:
  - url: 'http://localhost:8080'
paths:
  /henvendelseTraade:
    post:
      tags:
        - henvendelseDirigent
      operationId: opretHenvendelseTraad
      deprecated: true
      description: Dette er ikke den nyeste version af dette endepunkt. Dette endepunkt vil være supporteret til og med 31-12-2024, og vil blive lukket ved første release efter denne dato. Brug derfor det nye endepunkt </{sagsomraade}/henvendelseTraade> i stedet.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postHenvendelseTraad'
      responses:
        '201':
          description: Tråden blev oprettet med success.
          content:
            application/json:
              schema:
                $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelseTraad'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /{sagsomraade}/henvendelseTraade:
    parameters:
      - $ref: '#/components/parameters/sagsomraade'
    post:
      tags:
        - henvendelseDirigent
      operationId: opretHenvendelseTraadV2
      description: Opret ny tråd med mindst én henvendelse. 'id' og 'oprettet' tildeles efterfølgende af server og returneres i svar.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postHenvendelseTraad'
      responses:
        '201':
          description: Tråden blev oprettet med success.
          content:
            application/json:
              schema:
                $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelseTraad'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /henvendelseTraade/{traadId}/henvendelser:
    parameters:
      - $ref: './imported/henvendelser/henvendelser.yaml#/components/parameters/traadId'
    post:
      tags:
        - henvendelseDirigent
      operationId: opretHenvendelse
      deprecated: true
      description: Dette er ikke den nyeste version af dette endepunkt. Dette endepunkt vil være supporteret til og med 31-12-2024, og vil blive lukket ved første release efter denne dato. Brug derfor det nye endepunkt </{sagsomraade}/henvendelseTraade/{traadId}/henvendelser}> i stedet.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postHenvendelse'
      responses:
        '201':
          description: Henvendelsen blev oprettet med success.
          content:
            application/json:
              schema:
                $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelse'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

  /{sagsomraade}/henvendelseTraade/{traadId}/henvendelser:
    parameters:
      - $ref: '#/components/parameters/sagsomraade'
      - $ref: './imported/henvendelser/henvendelser.yaml#/components/parameters/traadId'
    post:
      tags:
        - henvendelseDirigent
      operationId: opretHenvendelseV2
      description: Opret ny henvendelse i angivne tråd. 'id' og 'oprettet' tildeles efterfølgende af server.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postHenvendelse'
      responses:
        '201':
          description: Henvendelsen blev oprettet med success.
          content:
            application/json:
              schema:
                $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelse'
        default:
          $ref: './imported/apiErrors/apiErrors.yaml#/components/responses/genericErrorResponse'

components:
  parameters:
    sagsomraade:
      name: sagsomraade
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/sagsomraade'
      description: Sagsområdet for henvendelsen.

  schemas:
    sagsomraade:
      type: string
      pattern: 'doedsbohenvendelser|tvangsoploesning'

    postHenvendelse:
      x-copy-properties-from:
        - $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelse'
      required:
        - tekst
        - sagId

    postHenvendelseTraad:
      x-copy-properties-from:
        - $ref: './imported/henvendelser/henvendelser.yaml#/components/schemas/henvendelseTraad'
      required:
        - sagId
        - emneord
        - henvendelser
