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, vattenmätarelarm och bräddmätarelarm går till MSVA och resterande till kundtjänst (digilogt)på servicecenter.

Fas 2: addera bildanalys samt integrationer mot fler verksamhetssystem (digitalt)

Mer information: Felanmälan

Livscykelstatus

TestProduktion

Lösningsbeskrivning

Gliffy

imageAttachmentIdatt86442117macroIddf280ba3-c550-4e27-b653-4c987cfc4001baseUrlhttps://sundsvall.atlassian.net/wikinameincident-APIdiagramAttachmentIdatt88080415containerId22315023timestamp1613027090720

displayNameincident_copy
nameincident_copy
pagePin1

Hantering av personuppgifter

För att möjliggöra återkoppling till intressenter så sparas intressentens person-id och om det angetts.

API Specifikation

POST

api/sendincident

Exempelanrop:

Code Block
languagejson
{
    "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 Image är en Base64-textsträng för bifogad bild.
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
languagejson
{
    “status”: <statusId>
}
Fältet status är en siffra som motsvarar en kategori som hämtas via anropet api/validstatuses

Exempelanrop:

api/3/status

Body:

Code Block
languagejson
{
    “status”: 2
}

GET

api/validstatuses

Listar samtliga giltiga statusar.

Exempelsvar:

[     {         "STATUS_ID": 1,         "status": ""     },     {         "STATUS_ID": 2,         "status": "resolved"     },     {         "STATUS_ID": 3,         "status": "rejected"     } ]
Code Block
languagejson
open

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
languagejson
[
    {
        "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
languagejson
{
    "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
titleAPI-nyckel för sandbox-miljö. Klicka på "Authorize" nedan och ange denna nyckel för att testa API:et.

Kommer snart

Swagger uiopenapi: 3.0.1 info: title: Incident version: '1.0' servers: - url:
showCommonExtensionstrue
deepLinkingtrue
supportedSubmitMethodsnone
locationurl
showExtensionstrue
urlhttps://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: 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
-docs



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 DynastyUnmasked

För tekniska frågor: teamdynasty@sundsvallteamunmasked@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

    Källkod

    Github

    FAQ

    <FAQ>