Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Beskrivning
Funktion för att registrera påminnelser, och skicka ut dem.
I kommande steg kan påminnelser komma att triggas utifrån.
Livscykelstatus
Design
Lösningsbeskrivning
Gliffy | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Datamodell reminders (draft)
personId (den som vill ha påminnelsen)
companyId (vilket av de företag personen representerar som påminnelsen avser - är tom om den är en privat påminnelse)
todo (fritext - exempel: “Förnya ansökan skyltlov”)
caseId (ärendenummer i Open-E t ex - exempel: “23456” - ej obligatoriskt)
caseLink (länk till ärendet i Open-E t ex för ärendet med caseId ovan - ej obligatorisk)
reminderDate (när skall påminnelsen skickas ut)
Utskick av påminnelser
Att köras en gång per dygn:
För alla reminders i databasen som har reminderDate idag:
Hämta kontaktuppgifter från feedbackSettings
Skicka påminnelsen som e-post eller SMS (beroende på uppgifterna från feedbackSettings) via messaging
Hantering av personuppgifter
PersonId används för att knyta påminnelser till en specifik individ.
API specifikation
Expand | ||
---|---|---|
| ||
eyJ4NXQiOiJOVGRtWmpNNFpEazNOalkwWXpjNU1tWm1PRGd3TVRFM01XWXdOREU1TVdSbFpEZzROemM0WkE9PSIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjYXJib24uc3VwZXIiLCJhcHBsaWNhdGlvbiI6eyJvd25lciI6ImFkbWluIiwidGllclF1b3RhVHlwZSI6bnVsbCwidGllciI6IlVubGltaXRlZCIsIm5hbWUiOiJNaWNrZVRlc3QiLCJpZCI6NDgsInV1aWQiOiIyMDJmNzkyZS01Y2VlLTRmYzQtYmQ1My01YWJhYWRiNjYzM2EifSwiaXNzIjoiaHR0cHM6XC9cL2FwaS1pbS10ZXN0LnN1bmRzdmFsbC5zZTo0NDNcL29hdXRoMlwvdG9rZW4iLCJ0aWVySW5mbyI6eyJVbmxpbWl0ZWQiOnsidGllclF1b3RhVHlwZSI6InJlcXVlc3RDb3VudCIsImdyYXBoUUxNYXhDb21wbGV4aXR5IjowLCJncmFwaFFMTWF4RGVwdGgiOjAsInN0b3BPblF1b3RhUmVhY2giOnRydWUsInNwaWtlQXJyZXN0TGltaXQiOjAsInNwaWtlQXJyZXN0VW5pdCI6bnVsbH19LCJrZXl0eXBlIjoiU0FOREJPWCIsInBlcm1pdHRlZFJlZmVyZXIiOiIiLCJzdWJzY3JpYmVkQVBJcyI6W3sic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJSZW1pbmRBbmRJbmZvcm0iLCJjb250ZXh0IjoiXC9yZW1pbmRlcnNcLzEuMCIsInB1Ymxpc2hlciI6ImFkbWluIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifV0sInBlcm1pdHRlZElQIjoiIiwiaWF0IjoxNjM5NDk4MDM4LCJqdGkiOiIxOTJmNzhiNS1jMGE5LTRmNDUtYmIzNy0yOTNjZTgwOWFiNDQifQ==.rOIOMlF8IhewdAV2hyIVoeI0RRQ91ERyZaosrij5ADsiBhOrv30roKVOZ5uNuIDrzo-VXwv2Ym7TvdU_C3LI6Dw1bDbdLYBgUYSU361xjr8NcS7DeXy3L1_unQdDj9cX6hdFvFcAzNhoz_laGKvO9mMpdwRcDopFIOHRt5UTlEiPQVoy5rHNh3oy5yN9na0aCY_0J_cbkL_hBRXpq7ftXKndcL35_B6AYV_UDJu-E6zosD1i39E_SLwLJEIsCgG9-lv5ni29MDV-c-XinDYCU7amLBOPJsC3B2VUfzFC7AtDnKVyrhcIsahsyAGrcQcL0i4qx2u9WPAB2Bc9K81g-Q== |
Swagger ui |
---|
---
openapi: 3.0.2
info:
title: api-remindandinform-dev API
version: 1.0.0-SNAPSHOT
servers:
- url: https://api-i-test.sundsvall.se/reminders/1.0
tags:
- name: Reminder
description: Remind operations
paths:
/reminders:
post:
tags:
- Reminder
summary: Create a new reminder.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReminderRequest'
required: true
responses:
"201":
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
/reminders/persons/{personId}:
get:
tags:
- Reminder
summary: Returns all reminders for a person.
parameters:
- name: personId
in: path
description: Person ID
required: true
schema:
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e1
responses:
"200":
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
/reminders/persons/{personId}/companies/{companyId}:
get:
tags:
- Reminder
summary: Returns all reminders for a person and a company which the person represent.
parameters:
- name: companyId
in: path
description: Company ID
required: true
schema:
pattern: \S
type: string
nullable: false
example: 5565112233
- name: personId
in: path
description: Person ID
required: true
schema:
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e1
responses:
"200":
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
/reminders/send:
post:
tags:
- Reminder
summary: Send reminders.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendRemindersRequest'
required: true
responses:
"204":
description: Successful operation
"400":
description: Bad request
content: {}
"500":
description: Internal Server error
content: {}
/reminders/{reminderId}:
get:
tags:
- Reminder
summary: Returns a reminder by reminder-id
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
pattern: \S
type: string
nullable: false
example: R-81471222-5798-11e9-ae24-57fa13b361e1
responses:
"200":
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
delete:
tags:
- Reminder
summary: Deletes a reminder.
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
pattern: \S
type: string
nullable: false
example: R-81471222-5798-11e9-ae24-57fa13b361e1
responses:
"204":
description: Successful operation
"400":
description: Bad request
content: {}
"404":
description: Not Found
content: {}
"500":
description: Internal Server error
content: {}
patch:
tags:
- Reminder
summary: Manage updates of a reminder.
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
pattern: \S
type: string
nullable: false
example: R-81471222-5798-11e9-ae24-57fa13b361e1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateReminderRequest'
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceErrorResponse'
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
schemas:
Reminder:
description: Reminder model
type: object
properties:
reminderId:
description: Reminder ID
type: string
example: R-81471222-5798-11e9-ae24-57fa13b361e1
personId:
description: Person ID
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e2
companyId:
description: Company ID
type: string
example: "5565112233"
action:
description: What should be done
type: string
example: Renew application
caseId:
description: Case ID
type: string
example: "12345"
caseLink:
description: Link to the case
type: string
example: http://test.sundsvall.se/case12345
reminderDate:
format: date
description: Date for reminding
type: string
example: 2021-11-01
ReminderRequest:
description: Reminder creation request model
required:
- personId
- action
- reminderDate
type: object
properties:
personId:
description: Person Id
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e2
nullable: false
companyId:
description: Company Id
maxLength: 10
type: string
example: "5565445566"
action:
description: What should be done
maxLength: 8192
type: string
example: Renew application
nullable: false
caseId:
description: Id for the case
maxLength: 255
type: string
example: "12345"
caseLink:
description: Link to the case
maxLength: 512
type: string
example: http://test.sundsvall.se/case1337
reminderDate:
format: date
description: Date for reminding
type: string
example: 2021-11-01
nullable: false
SendRemindersRequest:
description: Request model for sending reminders of a specified date
required:
- reminderDate
type: object
properties:
reminderDate:
format: date
description: Date for reminding
type: string
example: 2021-11-01
nullable: false
ServiceErrorResponse:
type: object
properties:
httpCode:
format: int32
type: integer
message:
type: string
technicalDetails:
$ref: '#/components/schemas/TechnicalDetails'
TechnicalDetails:
type: object
properties:
rootCode:
format: int32
type: integer
rootCause:
type: string
serviceId:
type: string
details:
type: array
items:
type: string
UpdateReminderRequest:
description: Reminder update request model
type: object
properties:
personId:
description: Person Id
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e1
companyId:
description: Company Id
maxLength: 10
type: string
example: "5565445566"
action:
description: What should be done
maxLength: 8192
type: string
example: Renew application
caseId:
description: Id for the case
maxLength: 255
type: string
example: "12345"
caseLink:
description: Link to the case
maxLength: 512
type: string
example: http://test.sundsvall.se/case1337
reminderDate:
format: date
description: Date for reminding
type: string
example: 2021-11-01
|
Säkerhetsklass 1
Autentiseringsmetod: Oauth2
(Ref: Säkerhetsklassning av APIer )
API-ägare
<Kontaktuppgifter till den verksamhet som äger APIets livscykel>
Teknisk ägare
<Kontaktuppgifter till utvecklare/teknisk förvaltare>
Länkar
<Länkar till dev-portal;
Test
Sandbox
Produktion>
FAQ
<FAQ>