diff --git a/src/openklant/components/contactmomenten/api/serializers.py b/src/openklant/components/contactmomenten/api/serializers.py index d4699a34..db83c270 100644 --- a/src/openklant/components/contactmomenten/api/serializers.py +++ b/src/openklant/components/contactmomenten/api/serializers.py @@ -146,6 +146,11 @@ class Meta: "medewerker_identificatie", "klantcontactmomenten", "objectcontactmomenten", + "identificatie", + "type", + "onderwerp", + "status", + "antwoord", ) extra_kwargs = { "url": {"lookup_field": "uuid"}, diff --git a/src/openklant/components/contactmomenten/migrations/0003_esuitefields.py b/src/openklant/components/contactmomenten/migrations/0003_esuitefields.py new file mode 100644 index 00000000..b9f69831 --- /dev/null +++ b/src/openklant/components/contactmomenten/migrations/0003_esuitefields.py @@ -0,0 +1,38 @@ +# Generated by Django 3.2.18 on 2023-04-04 13:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('contactmomenten', '0002_klantcontactmoment_gelezen'), + ] + + operations = [ + migrations.AddField( + model_name='contactmoment', + name='antwoord', + field=models.TextField(blank=True, help_text='Een toelichting die inhoudelijk de klantinteractie van de klant beschrijft. ***AFWIJKING:**', verbose_name='antwoord'), + ), + migrations.AddField( + model_name='contactmoment', + name='identificatie', + field=models.CharField(blank=True, help_text='Unieke identificatie van het contactmoment. ***AFWIJKING:**', max_length=50, verbose_name='identificatie'), + ), + migrations.AddField( + model_name='contactmoment', + name='onderwerp', + field=models.CharField(blank=True, help_text='Onderwerp van het contactmoment. ***AFWIJKING:**', max_length=255, verbose_name='onderwerp'), + ), + migrations.AddField( + model_name='contactmoment', + name='status', + field=models.CharField(blank=True, choices=[('nieuw', 'Nieuw'), ('in_behandeling', 'In behandeling'), ('afgehandeld', 'Afgehandeld')], help_text='Status van het contactmoment. ***AFWIJKING:**', max_length=50, verbose_name='status'), + ), + migrations.AddField( + model_name='contactmoment', + name='type', + field=models.CharField(blank=True, help_text='Type van het contactmoment. ***AFWIJKING:**', max_length=50, verbose_name='type'), + ), + ] diff --git a/src/openklant/components/contactmomenten/models/constants.py b/src/openklant/components/contactmomenten/models/constants.py index d2802530..27757392 100644 --- a/src/openklant/components/contactmomenten/models/constants.py +++ b/src/openklant/components/contactmomenten/models/constants.py @@ -13,5 +13,11 @@ class ObjectTypes(DjangoChoices): class Rol(DjangoChoices): - belanghebbende = ChoiceItem("belanghebbende", "Belanghebbende") - gesprekspartner = ChoiceItem("gesprekspartner", "Gesprekspartner") + belanghebbende = ChoiceItem("belanghebbende", _("Belanghebbende")) + gesprekspartner = ChoiceItem("gesprekspartner", _("Gesprekspartner")) + + +class Status(DjangoChoices): + nieuw = ChoiceItem("nieuw", _("Nieuw")) + in_behandeling = ChoiceItem("in_behandeling", _("In behandeling")) + afgehandeld = ChoiceItem("afgehandeld", _("Afgehandeld")) diff --git a/src/openklant/components/contactmomenten/models/contactmomenten.py b/src/openklant/components/contactmomenten/models/contactmomenten.py index 586d36dd..4cd5dfa5 100644 --- a/src/openklant/components/contactmomenten/models/contactmomenten.py +++ b/src/openklant/components/contactmomenten/models/contactmomenten.py @@ -8,7 +8,7 @@ from vng_api_common.fields import RSINField from vng_api_common.models import APIMixin -from .constants import InitiatiefNemer, ObjectTypes, Rol +from .constants import InitiatiefNemer, ObjectTypes, Rol, Status class ContactMoment(APIMixin, models.Model): @@ -91,6 +91,48 @@ class ContactMoment(APIMixin, models.Model): help_text=_("URL-referentie naar het vorige CONTACTMOMENT."), ) + identificatie = models.CharField( + _("identificatie"), + max_length=50, + blank=True, + help_text=_( + "Unieke identificatie van het contactmoment. ***AFWIJKING:**" + ), + # validators=[alphanumeric_excluding_diacritic], + ) + type = models.CharField( + _("type"), + max_length=50, + blank=True, + help_text=_( + "Type van het contactmoment. ***AFWIJKING:**" + ), + ) + onderwerp = models.CharField( + _("onderwerp"), + max_length=255, + blank=True, + help_text=_( + "Onderwerp van het contactmoment. ***AFWIJKING:**" + ), + ) + status = models.CharField( + _("status"), + max_length=50, + blank=True, + choices=Status.choices, + help_text=_( + "Status van het contactmoment. ***AFWIJKING:**" + ), + ) + antwoord = models.TextField( + _("antwoord"), + blank=True, + help_text=_( + "Een toelichting die inhoudelijk de klantinteractie van de klant beschrijft. ***AFWIJKING:**" + ), + ) + class Meta: verbose_name = "contactmoment" verbose_name_plural = "contactmomenten" diff --git a/src/openklant/components/contactmomenten/openapi.yaml b/src/openklant/components/contactmomenten/openapi.yaml index 2e227d12..a9d1cdd2 100644 --- a/src/openklant/components/contactmomenten/openapi.yaml +++ b/src/openklant/components/contactmomenten/openapi.yaml @@ -218,7 +218,11 @@ paths: gescheiden worden.' required: false schema: - type: string + type: array + items: + type: string + style: form + explode: false - name: klant in: query description: '***AFWIJKING:** De URL van de gerelateerde KLANT (zoals vastgelegd @@ -226,7 +230,11 @@ paths: gescheiden worden.' required: false schema: - type: string + type: array + items: + type: string + style: form + explode: false - name: expand in: query description: '***AFWIJKING:** Haal details van inline resources direct op.' @@ -241,30 +249,34 @@ paths: description: Het veld waarop de resultaten geordend worden. required: false schema: - type: string - enum: - - url - - -url - - bronorganisatie - - -bronorganisatie - - klant - - -klant - - registratiedatum - - -registratiedatum - - kanaal - - -kanaal - - voorkeurskanaal - - -voorkeurskanaal - - tekst - - -tekst - - onderwerp_links - - -onderwerp_links - - initiatiefnemer - - -initiatiefnemer - - medewerker - - -medewerker - - medewerker_identificatie - - -medewerker_identificatie + type: array + items: + type: string + enum: + - url + - -url + - bronorganisatie + - -bronorganisatie + - klant + - -klant + - registratiedatum + - -registratiedatum + - kanaal + - -kanaal + - voorkeurskanaal + - -voorkeurskanaal + - tekst + - -tekst + - onderwerp_links + - -onderwerp_links + - initiatiefnemer + - -initiatiefnemer + - medewerker + - -medewerker + - medewerker_identificatie + - -medewerker_identificatie + style: form + explode: false - name: page in: query description: Een pagina binnen de gepagineerde set resultaten. @@ -399,6 +411,13 @@ paths: operationId: audittrail_list summary: Alle audit trail regels behorend bij de CONTACTMOMENT. description: Alle audit trail regels behorend bij de CONTACTMOMENT. + parameters: + - name: page + in: query + description: Een pagina binnen de gepagineerde set resultaten. + required: false + schema: + type: integer responses: '200': description: OK @@ -411,9 +430,25 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/AuditTrail' + required: + - count + - results + type: object + properties: + count: + type: integer + next: + type: string + format: uri + nullable: true + previous: + type: string + format: uri + nullable: true + results: + type: array + items: + $ref: '#/components/schemas/AuditTrail' '401': $ref: '#/components/responses/401' '403': @@ -448,35 +483,10 @@ paths: operationId: audittrail_read summary: Een specifieke audit trail regel opvragen. description: Een specifieke audit trail regel opvragen. - parameters: - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -538,34 +548,10 @@ paths: enum: - klantcontactmomenten - objectcontactmomenten - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -948,35 +934,10 @@ paths: operationId: klantcontactmoment_read summary: Een specifieke KLANT-CONTACTMOMENT relatie opvragen. description: Een specifieke KLANT-CONTACTMOMENT relatie opvragen. - parameters: - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -1321,35 +1282,10 @@ paths: operationId: objectcontactmoment_read summary: Een specifiek OBJECT-CONTACTMOMENT relatie opvragen. description: Een specifiek OBJECT-CONTACTMOMENT relatie opvragen. - parameters: - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -1728,6 +1664,34 @@ components: format: uri readOnly: true uniqueItems: true + identificatie: + title: Identificatie + description: Unieke identificatie van het contactmoment. ***AFWIJKING:** + type: string + maxLength: 50 + type: + title: Type + description: Type van het contactmoment. ***AFWIJKING:** + type: string + maxLength: 50 + onderwerp: + title: Onderwerp + description: Onderwerp van het contactmoment. ***AFWIJKING:** + type: string + maxLength: 255 + status: + title: Status + description: Status van het contactmoment. ***AFWIJKING:** + type: string + enum: + - nieuw + - in_behandeling + - afgehandeld + antwoord: + title: Antwoord + description: Een toelichting die inhoudelijk de klantinteractie van de klant + beschrijft. ***AFWIJKING:** + type: string Fout: required: - code @@ -1882,7 +1846,9 @@ components: * `cmc` - Contactmomenten API - * `kc` - Klanten API' + * `kc` - Klanten API + + * `vrc` - Verzoeken API' type: string enum: - ac @@ -1893,6 +1859,7 @@ components: - brc - cmc - kc + - vrc applicatieId: title: Applicatie id description: Unieke identificatie van de applicatie, binnen de organisatie. diff --git a/src/openklant/components/contactmomenten/resources.md b/src/openklant/components/contactmomenten/resources.md index 927372d6..357467c9 100644 --- a/src/openklant/components/contactmomenten/resources.md +++ b/src/openklant/components/contactmomenten/resources.md @@ -35,6 +35,11 @@ Objecttype op [GEMMA Online](https://www.gemmaonline.nl/index.php/Rgbz_1.0/doc/o | medewerker | URL-referentie naar een medewerker | string | nee | C​R​U​D | | klantcontactmomenten | ***AFWIJKING:** Lijst met URLs van gerelateerde KLANTCONTACTMOMENTen | array | nee | ~~C~~​R​~~U~~​~~D~~ | | objectcontactmomenten | ***AFWIJKING:** Lijst met URLs van gerelateerde OBJECTCONTACTMOMENTen | array | nee | ~~C~~​R​~~U~~​~~D~~ | +| identificatie | Unieke identificatie van het contactmoment. ***AFWIJKING:** | string | nee | C​R​U​D | +| type | Type van het contactmoment. ***AFWIJKING:** | string | nee | C​R​U​D | +| onderwerp | Onderwerp van het contactmoment. ***AFWIJKING:** | string | nee | C​R​U​D | +| status | Status van het contactmoment. ***AFWIJKING:** | string | nee | C​R​U​D | +| antwoord | Een toelichting die inhoudelijk de klantinteractie van de klant beschrijft. ***AFWIJKING:** | string | nee | C​R​U​D | ## AuditTrail @@ -54,7 +59,8 @@ Uitleg bij mogelijke waarden: * `drc` - Documenten API * `brc` - Besluiten API * `cmc` - Contactmomenten API -* `kc` - Klanten API | string | ja | C​R​U​D | +* `kc` - Klanten API +* `vrc` - Verzoeken API | string | ja | C​R​U​D | | applicatieId | Unieke identificatie van de applicatie, binnen de organisatie. | string | nee | C​R​U​D | | applicatieWeergave | Vriendelijke naam van de applicatie. | string | nee | C​R​U​D | | gebruikersId | Unieke identificatie van de gebruiker die binnen de organisatie herleid kan worden naar een persoon. | string | nee | C​R​U​D | diff --git a/src/openklant/components/contactmomenten/swagger2.0.json b/src/openklant/components/contactmomenten/swagger2.0.json index b4065f19..d1dc0350 100644 --- a/src/openklant/components/contactmomenten/swagger2.0.json +++ b/src/openklant/components/contactmomenten/swagger2.0.json @@ -121,7 +121,7 @@ { "name": "initiatiefnemer", "in": "query", - "description": "De partij die het contact heeft ge\u00efnitieerd.", + "description": "De partij die het contact heeft geïnitieerd.", "required": false, "type": "string", "enum": [ @@ -170,14 +170,30 @@ "in": "query", "description": "***AFWIJKING:** De URL van het gerelateerde object (zoals vastgelegd in de OBJECTCONTACTMOMENT resource). Meerdere waardes kunnen met komma's gescheiden worden.", "required": false, - "type": "string" + "type": "array", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form", + "explode": false }, { "name": "klant", "in": "query", "description": "***AFWIJKING:** De URL van de gerelateerde KLANT (zoals vastgelegd in de KLANTCONTACTMOMENT resource). Meerdere waardes kunnen met komma's gescheiden worden.", "required": false, - "type": "string" + "type": "array", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form", + "explode": false }, { "name": "expand", @@ -195,31 +211,39 @@ "in": "query", "description": "Het veld waarop de resultaten geordend worden.", "required": false, - "type": "string", - "enum": [ - "url", - "-url", - "bronorganisatie", - "-bronorganisatie", - "klant", - "-klant", - "registratiedatum", - "-registratiedatum", - "kanaal", - "-kanaal", - "voorkeurskanaal", - "-voorkeurskanaal", - "tekst", - "-tekst", - "onderwerp_links", - "-onderwerp_links", - "initiatiefnemer", - "-initiatiefnemer", - "medewerker", - "-medewerker", - "medewerker_identificatie", - "-medewerker_identificatie" - ] + "type": "array", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "url", + "-url", + "bronorganisatie", + "-bronorganisatie", + "klant", + "-klant", + "registratiedatum", + "-registratiedatum", + "kanaal", + "-kanaal", + "voorkeurskanaal", + "-voorkeurskanaal", + "tekst", + "-tekst", + "onderwerp_links", + "-onderwerp_links", + "initiatiefnemer", + "-initiatiefnemer", + "medewerker", + "-medewerker", + "medewerker_identificatie", + "-medewerker_identificatie" + ] + } + }, + "style": "form", + "explode": false }, { "name": "page", @@ -414,14 +438,44 @@ "operationId": "audittrail_list", "summary": "Alle audit trail regels behorend bij de CONTACTMOMENT.", "description": "Alle audit trail regels behorend bij de CONTACTMOMENT.", - "parameters": [], + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Een pagina binnen de gepagineerde set resultaten.", + "required": false, + "type": "integer" + } + ], "responses": { "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/AuditTrail" + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "next": { + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditTrail" + } + } } }, "headers": { @@ -485,25 +539,7 @@ "operationId": "audittrail_read", "summary": "Een specifieke audit trail regel opvragen.", "description": "Een specifieke audit trail regel opvragen.", - "parameters": [ - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -511,10 +547,6 @@ "$ref": "#/definitions/AuditTrail" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -596,23 +628,6 @@ "klantcontactmomenten", "objectcontactmomenten" ] - }, - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } } ], "responses": { @@ -622,10 +637,6 @@ "$ref": "#/definitions/ContactMoment" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -1157,25 +1168,7 @@ "operationId": "klantcontactmoment_read", "summary": "Een specifieke KLANT-CONTACTMOMENT relatie opvragen.", "description": "Een specifieke KLANT-CONTACTMOMENT relatie opvragen.", - "parameters": [ - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1183,10 +1176,6 @@ "$ref": "#/definitions/KlantContactMoment" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -1674,25 +1663,7 @@ "operationId": "objectcontactmoment_read", "summary": "Een specifiek OBJECT-CONTACTMOMENT relatie opvragen.", "description": "Een specifiek OBJECT-CONTACTMOMENT relatie opvragen.", - "parameters": [ - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -1700,10 +1671,6 @@ "$ref": "#/definitions/ObjectContactMoment" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -1921,7 +1888,7 @@ "type": "string" }, "onderwerpLinks": { - "description": "E\u00e9n of meerdere links naar een product, webpagina of andere entiteit zodat contactmomenten gegroepeerd kunnen worden op onderwerp.", + "description": "Eén of meerdere links naar een product, webpagina of andere entiteit zodat contactmomenten gegroepeerd kunnen worden op onderwerp.", "type": "array", "items": { "title": "Onderwerp link", @@ -1934,7 +1901,7 @@ }, "initiatiefnemer": { "title": "Initiatiefnemer", - "description": "De partij die het contact heeft ge\u00efnitieerd.", + "description": "De partij die het contact heeft geïnitieerd.", "type": "string", "enum": [ "gemeente", @@ -1972,6 +1939,39 @@ }, "readOnly": true, "uniqueItems": true + }, + "identificatie": { + "title": "Identificatie", + "description": "Unieke identificatie van het contactmoment. ***AFWIJKING:**", + "type": "string", + "maxLength": 50 + }, + "type": { + "title": "Type", + "description": "Type van het contactmoment. ***AFWIJKING:**", + "type": "string", + "maxLength": 50 + }, + "onderwerp": { + "title": "Onderwerp", + "description": "Onderwerp van het contactmoment. ***AFWIJKING:**", + "type": "string", + "maxLength": 255 + }, + "status": { + "title": "Status", + "description": "Status van het contactmoment. ***AFWIJKING:**", + "type": "string", + "enum": [ + "nieuw", + "in_behandeling", + "afgehandeld" + ] + }, + "antwoord": { + "title": "Antwoord", + "description": "Een toelichting die inhoudelijk de klantinteractie van de klant beschrijft. ***AFWIJKING:**", + "type": "string" } } }, @@ -2138,7 +2138,7 @@ }, "bron": { "title": "Bron", - "description": "De naam van het component waar de wijziging in is gedaan.\n\nUitleg bij mogelijke waarden:\n\n* `ac` - Autorisaties API\n* `nrc` - Notificaties API\n* `zrc` - Zaken API\n* `ztc` - Catalogi API\n* `drc` - Documenten API\n* `brc` - Besluiten API\n* `cmc` - Contactmomenten API\n* `kc` - Klanten API", + "description": "De naam van het component waar de wijziging in is gedaan.\n\nUitleg bij mogelijke waarden:\n\n* `ac` - Autorisaties API\n* `nrc` - Notificaties API\n* `zrc` - Zaken API\n* `ztc` - Catalogi API\n* `drc` - Documenten API\n* `brc` - Besluiten API\n* `cmc` - Contactmomenten API\n* `kc` - Klanten API\n* `vrc` - Verzoeken API", "type": "string", "enum": [ "ac", @@ -2148,7 +2148,8 @@ "drc", "brc", "cmc", - "kc" + "kc", + "vrc" ] }, "applicatieId": { diff --git a/src/openklant/components/klanten/openapi.yaml b/src/openklant/components/klanten/openapi.yaml index 571eeb33..d96b33e2 100644 --- a/src/openklant/components/klanten/openapi.yaml +++ b/src/openklant/components/klanten/openapi.yaml @@ -385,6 +385,13 @@ paths: operationId: audittrail_list summary: Alle audit trail regels behorend bij de KLANT. description: Alle audit trail regels behorend bij de KLANT. + parameters: + - name: page + in: query + description: Een pagina binnen de gepagineerde set resultaten. + required: false + schema: + type: integer responses: '200': description: OK @@ -397,9 +404,25 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/AuditTrail' + required: + - count + - results + type: object + properties: + count: + type: integer + next: + type: string + format: uri + nullable: true + previous: + type: string + format: uri + nullable: true + results: + type: array + items: + $ref: '#/components/schemas/AuditTrail' '401': $ref: '#/components/responses/401' '403': @@ -434,35 +457,10 @@ paths: operationId: audittrail_read summary: Een specifieke audit trail regel opvragen. description: Een specifieke audit trail regel opvragen. - parameters: - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -515,35 +513,10 @@ paths: operationId: klant_read summary: Een specifiek KLANT opvragen. description: Een specifiek KLANT opvragen. - parameters: - - name: If-None-Match - in: header - description: "Voer een voorwaardelijk verzoek uit. Deze header moet \xE9\xE9\ - n of meerdere ETag-waardes bevatten van resources die de consumer gecached\ - \ heeft. Indien de waarde van de ETag van de huidige resource voorkomt in\ - \ deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie\ - \ [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match)\ - \ voor meer informatie." - required: false - examples: - oneValue: - summary: "E\xE9n ETag-waarde" - value: '"79054025255fb1a26e4bc422aef54eb4"' - multipleValues: - summary: Meerdere ETag-waardes - value: '"79054025255fb1a26e4bc422aef54eb4", "e4d909c290d0fb1ca068ffaddf22cbd0"' - schema: - type: string responses: '200': description: OK headers: - ETag: - description: De ETag berekend op de response body JSON. Indien twee - resources exact dezelfde ETag hebben, dan zijn deze resources identiek - aan elkaar. Je kan de ETag gebruiken om caching te implementeren. - schema: - type: string API-version: schema: type: string @@ -1466,7 +1439,9 @@ components: * `cmc` - Contactmomenten API - * `kc` - Klanten API' + * `kc` - Klanten API + + * `vrc` - Verzoeken API' type: string enum: - ac @@ -1477,6 +1452,7 @@ components: - brc - cmc - kc + - vrc applicatieId: title: Applicatie id description: Unieke identificatie van de applicatie, binnen de organisatie. diff --git a/src/openklant/components/klanten/resources.md b/src/openklant/components/klanten/resources.md index 4c975364..18be9c5a 100644 --- a/src/openklant/components/klanten/resources.md +++ b/src/openklant/components/klanten/resources.md @@ -134,7 +134,8 @@ Uitleg bij mogelijke waarden: * `drc` - Documenten API * `brc` - Besluiten API * `cmc` - Contactmomenten API -* `kc` - Klanten API | string | ja | C​R​U​D | +* `kc` - Klanten API +* `vrc` - Verzoeken API | string | ja | C​R​U​D | | applicatieId | Unieke identificatie van de applicatie, binnen de organisatie. | string | nee | C​R​U​D | | applicatieWeergave | Vriendelijke naam van de applicatie. | string | nee | C​R​U​D | | gebruikersId | Unieke identificatie van de gebruiker die binnen de organisatie herleid kan worden naar een persoon. | string | nee | C​R​U​D | diff --git a/src/openklant/components/klanten/swagger2.0.json b/src/openklant/components/klanten/swagger2.0.json index f22ac312..0684eba9 100644 --- a/src/openklant/components/klanten/swagger2.0.json +++ b/src/openklant/components/klanten/swagger2.0.json @@ -406,14 +406,44 @@ "operationId": "audittrail_list", "summary": "Alle audit trail regels behorend bij de KLANT.", "description": "Alle audit trail regels behorend bij de KLANT.", - "parameters": [], + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Een pagina binnen de gepagineerde set resultaten.", + "required": false, + "type": "integer" + } + ], "responses": { "200": { "description": "OK", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/AuditTrail" + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "next": { + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AuditTrail" + } + } } }, "headers": { @@ -477,25 +507,7 @@ "operationId": "audittrail_read", "summary": "Een specifieke audit trail regel opvragen.", "description": "Een specifieke audit trail regel opvragen.", - "parameters": [ - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -503,10 +515,6 @@ "$ref": "#/definitions/AuditTrail" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -578,25 +586,7 @@ "operationId": "klant_read", "summary": "Een specifiek KLANT opvragen.", "description": "Een specifiek KLANT opvragen.", - "parameters": [ - { - "name": "If-None-Match", - "in": "header", - "description": "Voer een voorwaardelijk verzoek uit. Deze header moet \u00e9\u00e9n of meerdere ETag-waardes bevatten van resources die de consumer gecached heeft. Indien de waarde van de ETag van de huidige resource voorkomt in deze set, dan antwoordt de provider met een lege HTTP 304 request. Zie [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match) voor meer informatie.", - "required": false, - "type": "string", - "examples": { - "oneValue": { - "summary": "E\u00e9n ETag-waarde", - "value": "\"79054025255fb1a26e4bc422aef54eb4\"" - }, - "multipleValues": { - "summary": "Meerdere ETag-waardes", - "value": "\"79054025255fb1a26e4bc422aef54eb4\", \"e4d909c290d0fb1ca068ffaddf22cbd0\"" - } - } - } - ], + "parameters": [], "responses": { "200": { "description": "OK", @@ -604,10 +594,6 @@ "$ref": "#/definitions/Klant" }, "headers": { - "ETag": { - "description": "De ETag berekend op de response body JSON. Indien twee resources exact dezelfde ETag hebben, dan zijn deze resources identiek aan elkaar. Je kan de ETag gebruiken om caching te implementeren.", - "type": "string" - }, "API-version": { "schema": { "type": "string" @@ -1556,7 +1542,7 @@ }, "bron": { "title": "Bron", - "description": "De naam van het component waar de wijziging in is gedaan.\n\nUitleg bij mogelijke waarden:\n\n* `ac` - Autorisaties API\n* `nrc` - Notificaties API\n* `zrc` - Zaken API\n* `ztc` - Catalogi API\n* `drc` - Documenten API\n* `brc` - Besluiten API\n* `cmc` - Contactmomenten API\n* `kc` - Klanten API", + "description": "De naam van het component waar de wijziging in is gedaan.\n\nUitleg bij mogelijke waarden:\n\n* `ac` - Autorisaties API\n* `nrc` - Notificaties API\n* `zrc` - Zaken API\n* `ztc` - Catalogi API\n* `drc` - Documenten API\n* `brc` - Besluiten API\n* `cmc` - Contactmomenten API\n* `kc` - Klanten API\n* `vrc` - Verzoeken API", "type": "string", "enum": [ "ac", @@ -1566,7 +1552,8 @@ "drc", "brc", "cmc", - "kc" + "kc", + "vrc" ] }, "applicatieId": {