Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Beskrivning
Tar emot felanmälan, samt tillhandahåller master data för nya felanmälningar.
Aktuell version: integration mot ISYcase för SBK-relaterade felanmälningar - i övrigt så skickas felanmälan vidare via e-post till kundtjänst (digilogt)
Fas 2: addera bildanalys samt integrationer mot fler verksamhetssystem (digitalt)
Mer information: Felanmälan
Livscykelstatus
Test
Lösningsbeskrivning
Gliffy | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Hantering av personuppgifter
För att möjliggöra återkoppling till intressenter så sparas intressentens person-id och det angetts.
API Specifikation
POST
api/sendincident
Exempelanrop:
Code Block | ||
---|---|---|
| ||
{
"personId": <Guid>,
"phoneNumber": "070123456789",
"email": "test@test.se",
"contactMethod": "email",
"category": 6,
"description": "Någon har kastat tugummi i en park",
"mapCoordinates": "62.23162,17.27403",
"attachments": [
{
"category": "BILD",
"extension": "png",
"mimeType": "image/png",
"file": "<base64>"
}
]
} |
Fältet Category är en siffra som motsvarar en kategori som hämtas via anropet
api/validcategories
Obligatoriska fält är category
, description
och attachments
Övriga fält kan lämnas tomma eller utelämnas helt.
PATCH
api/{id}/status
Uppdaterar status för ett ärende (id). Tar emot ett JSON-objekt med följande format:
Code Block | ||
---|---|---|
| ||
{
“status”: <statusId>
} |
api/validstatuses
Exempelanrop:
api/3/status
Body:
Code Block | ||
---|---|---|
| ||
{
“status”: 2
} |
GET
api/validstatuses
Listar samtliga giltiga statusar.
Exempelsvar:
Code Block | ||
---|---|---|
| ||
[
{
"STATUS_ID": 1,
"status": "open"
},
{
"STATUS_ID": 2,
"status": "resolved"
},
{
"STATUS_ID": 3,
"status": "rejected"
}
] |
api/validcategories
Listar samtliga giltiga kategorier
Exempelsvar:
Code Block |
---|
[
{
"CATEGORY_ID": 1,
"category": "Belysning"
},
{
"CATEGORY_ID": 2,
"category": "Bro/Tunnel/Konstruktion"
},
{
"CATEGORY_ID": 3,
"category": "Felparkerat och övergivet fordon"
}
] |
api/setincidentfeedback
Uppdaterar vart ärendet ska, t.ex. Stadsbyggnadskontoret. Tar emot två query-parametrar, incidentid(ärende-ID), samt feedback(vart ärendet ska, t.ex. Stadsbyggnadskontoret).
Exempelanrop: api/setincidentfeedback?incidentid=1&feedback=Stadsbyggnadskontoret
api/listincidents
Listar de ärenden som finns i databasen, tar emot två query-parametrar, offset(hur många poster som ska hoppas över) samt limit(hur många poster som ska skickas), vilket möjliggör paginering. Om ingen parameter anges skickas alla poster, om endast offset anges skickas 100 poster per anrop.
Exempelanrop api/listincidents?offset=5&limit=5
Vilket returnerar 5 poster och hoppar över de 5 första i databasen.
Exempelsvar:
Code Block | ||
---|---|---|
| ||
[
{
"incidentId": <guid>,
"status": 1 },
{
"incidentId": <guid>,
"status": 1 },
{
"incidentId": <guid>,
"status": 1 },
{
"incidentId": <guid>,
"status": 1 },
{
"incidentId": <guid>,
"status": 1
}
] |
api/getincident/{id}
api/getincident/{externalCaseId}
Returnerar ett ärende med angivet ID.
Exempelanrop: api/geterrand/00000000-0000-0000-0000-000000000000
Exempelsvar:
Code Block | ||
---|---|---|
| ||
{
"incidentID": <guid>,
"personID": <guid>,
"created": "2020-12-10T22:33:07.000Z",
"phoneNumber": "070123456789",
"email": "test@test.se",
"contactMethod": "email",
"updated": null,
"category": 6,
"description": "Någon har kastat tugummi i en park",
"mapCoordinates": "62.23162,17.27403",
"attachments": [
{
"category": "Bild",
"extension": "png",
"mimetype": "image/png",
"note": "Bifogad bild",
"file": <Base64>,
"IncidentId": "61922068-4dac-4aa7-bcb3-6428c4232ced",
"name": "987dc019dd3aaa766b9f5f29aa0c69d7bc98",
"created": "2020-12-10T22:33:07.000Z"
}
]
} |
Fältet fileinnehåller en Base64-textsträng som motsvarar den bild som bifogats med anmälan.
Fält som inte är ifyllda, till exempel att inget telefonnummer har angetts, kommer inte att skickas med.
När ett ärende skickas in skapas ett ID för personen som skickat, om en person tidigare skickat ett ärende, används det tidigare ID:t. Fältet category
motsvarar en kategori i anropet api/validcategories
under attachments
innebär category
kategorin för den bifogade filen.
Expand | ||
---|---|---|
| ||
Kommer snart |
Swagger ui |
---|
openapi: 3.0.1
info:
title: Incident
version: '1.0'
servers:
- url: https://api-test.sundsvall.se/incident/1.0
paths:
'/api/getincident/{externalCaseId}':
get:
tags:
- Incident
parameters:
- name: externalCaseId
in: path
required: true
style: simple
explode: false
schema:
type: string
format: string
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/Incident'
/api/listincidents:
get:
tags:
- Incident
parameters:
- name: offset
in: query
required: false
style: form
explode: true
schema:
type: integer
- name: limit
in: query
required: false
style: form
explode: true
schema:
type: integer
responses:
'200':
description: ok
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ListIncident'
/api/validcategories/oep:
get:
tags:
- Incident
parameters: []
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/ValidCategoryOeP'
/api/validcategories:
get:
tags:
- Incident
parameters: []
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/ValidCategory'
/api/sendincident:
post:
tags:
- Incident
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostIncident'
responses:
'200':
description: ok
/api/hello:
get:
tags:
- Incident
description: Hello World
parameters: []
responses:
'200':
description: ok
/api/setincidentfeedback:
get:
tags:
- Incident
parameters:
- name: feedback
in: query
required: true
style: form
explode: true
schema:
type: string
- name: errandid
in: query
required: true
style: form
explode: true
schema:
type: integer
responses:
'200':
description: ok
/api/validstatuses:
get:
tags:
- Incident
parameters: []
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/ValidStatus'
'/api/internal/oep/status/{externalCaseId}':
get:
tags:
- OeP
parameters:
- name: externalCaseId
in: path
required: true
style: simple
explode: false
schema:
type: string
format: string
responses:
'200':
description: ok
'/api/getincident/{id}':
get:
tags:
- Incident
parameters:
- name: id
in: path
required: true
style: simple
explode: false
schema:
type: string
format: uuid
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/Incident'
'/api/{id}/status':
patch:
tags:
- Incident
description: Updates status for specific errand
parameters:
- name: id
in: path
required: true
style: simple
explode: false
schema:
type: string
format: string
requestBody:
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example:
status: 2
responses:
'200':
description: ok
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
schemas:
Incident:
type: object
properties:
incidentId:
type: string
format: uuid
nullable: false
externalCaseId:
type: string
nullable: true
personId:
type: string
nullable: false
created:
type: string
nullable: false
phoneNumber:
type: string
nullable: true
email:
type: string
nullable: true
contactMethod:
type: string
nullable: false
category:
type: integer
format: int32
nullable: false
description:
type: string
nullable: true
fileName:
type: string
nullable: true
image:
type: string
nullable: true
additionalProperties: false
Attachment:
type: object
properties:
category:
type: string
nullable: true
extension:
type: string
nullable: false
mimeType:
type: string
nullable: false
note:
type: string
nullable: true
file:
type: string
nullable: false
PostIncident:
type: object
properties:
personId:
type: string
format: uuid
nullable: false
phoneNumber:
type: string
nullable: true
email:
type: string
nullable: true
contactMethod:
type: string
nullable: false
category:
type: integer
nullable: false
description:
type: string
nullable: true
mapCoordinates:
type: string
nullable: true
externalCaseId:
type: string
nullable: true
attachments:
type: array
nullable: true
items:
$ref: '#/components/schemas/Attachment'
additionalProperties: false
ValidCategory:
type: object
properties:
CATEGORY_ID:
type: integer
format: int32
nullable: false
category:
type: string
nullable: false
additionalProperties: false
ValidCategoryOeP:
type: object
properties:
key:
type: integer
format: int32
nullable: false
value:
type: string
nullable: false
additionalProperties: false
ValidStatus:
type: object
properties:
STATUS_ID:
type: integer
format: int32
nullable: false
status:
type: string
nullable: false
additionalProperties: false
ListIncident:
type: object
properties:
incidentId:
type: string
format: uuid
nullable: false
status:
type: integer
format: int32
nullable: false
externalCaseId:
type: string
nullable: true
additionalProperties: false
|
Säkerhetsklassning
Säkerhetsklass 1
Autentiseringsmetod: Oauth2
(Ref: Säkerhetsklassning av APIer )
API-ägare
<Kontaktuppgifter till den verksamhet som äger APIets livscykel>
Teknisk ägare
https://sundsvall.atlassian.net/wiki/spaces/API
Ansvarigt team: Team Dynasty
För tekniska frågor: teamdynasty@sundsvall.se
Länkar
<Länkar till dev-portal;
Test
Sandbox https://microservices.sundsvall.se/sandbox/incident/hello
Produktion https://microservices.sundsvall.se/incident/hello
FAQ
<FAQ>