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
DesignProduktion
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åminnelsepartyId (mottagare till påminnelsen, uuid för företag eller privatperson)
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)
note (fritext - notering kopplad till påminnelsen. Ingår ej i påminnelsenutskicket)
reminderDate (när skall påminnelsen skickas ut)
created (tidsstämpel då påminnelsen skapades)
createdBy (identifikation på individ som skapade påminnelsen)
modified (tidsstämpel då påminnelsen senast uppdaterades, null om ingen uppdatering skett)
modifiedBy (identifikation på individ som senast uppdaterade påminnelsen, null om ingen uppdatering skett)
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 via Messaging från feedbackSettings
Skicka påminnelsen som e-post eller SMS (beroende på uppgifterna från feedbackSettings) via messaging
Hantering av personuppgifter
PersonId partyId används för att knyta påminnelser till en specifik individ eller organisation.
API specifikation
Expand | ||
---|---|---|
| ||
eyJ4NXQiOiJOVGRtWmpNNFpEazNOalkwWXpjNU1tWm1PRGd3TVRFM01XWXdOREU1TVdSbFpEZzROemM0WkE9PSIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjYXJib24uc3VwZXIiLCJhcHBsaWNhdGlvbiI6eyJvd25lciI6ImFkbWluIiwidGllclF1b3RhVHlwZSI6bnVsbCwidGllciI6IlVubGltaXRlZCIsIm5hbWUiOiJNaWNrZVRlc3QiLCJpZCI6NDgsInV1aWQiOiIyMDJmNzkyZS01Y2VlLTRmYzQtYmQ1My01YWJhYWRiNjYzM2EifSwiaXNzIjoiaHR0cHM6XC9cL2FwaS1pbS10ZXN0LnN1bmRzdmFsbC5zZTo0NDNcL29hdXRoMlwvdG9rZW4iLCJ0aWVySW5mbyI6eyJVbmxpbWl0ZWQiOnsidGllclF1b3RhVHlwZSI6InJlcXVlc3RDb3VudCIsImdyYXBoUUxNYXhDb21wbGV4aXR5IjowLCJncmFwaFFMTWF4RGVwdGgiOjAsInN0b3BPblF1b3RhUmVhY2giOnRydWUsInNwaWtlQXJyZXN0TGltaXQiOjAsInNwaWtlQXJyZXN0VW5pdCI6bnVsbH19LCJrZXl0eXBlIjoiU0FOREJPWCIsInBlcm1pdHRlZFJlZmVyZXIiOiIiLCJzdWJzY3JpYmVkQVBJcyI6W3sic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJSZW1pbmRBbmRJbmZvcm0iLCJjb250ZXh0IjoiXC9yZW1pbmRlcnNcLzEuMCIsInB1Ymxpc2hlciI6ImFkbWluIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifV0sInBlcm1pdHRlZElQIjoiIiwiaWF0IjoxNjM5NDk4MDM4LCJqdGkiOiIxOTJmNzhiNS1jMGE5LTRmNDUtYmIzNy0yOTNjZTgwOWFiNDQifQ==.rOIOMlF8IhewdAV2hyIVoeI0RRQ91ERyZaosrij5ADsiBhOrv30roKVOZ5uNuIDrzo-VXwv2Ym7TvdU_C3LI6Dw1bDbdLYBgUYSU361xjr8NcS7DeXy3L1_unQdDj9cX6hdFvFcAzNhoz_laGKvO9mMpdwRcDopFIOHRt5UTlEiPQVoy5rHNh3oy5yN9na0aCY_0J_cbkL_hBRXpq7ftXKndcL35_B6AYV_UDJu-E6zosD1i39E_SLwLJEIsCgG9-lv5ni29MDV-c-XinDYCU7amLBOPJsC3B2VUfzFC7AtDnKVyrhcIsahsyAGrcQcL0i4qx2u9WPAB2Bc9K81g-Q== |
Open api | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0
tags:
- name: Reminder
description: Remind operations
paths:
/
| :
get:
tags:
- API
summary: OpenAPI-definition
parameters: []
responses:
"200":
description: ok
x-auth-type: None
/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äkerhetsklassning
Säkerhetsklass 1
Autentiseringsmetod: Oauth2
(Ref: Säkerhetsklassning av APIer )
API-ägare
<Kontaktuppgifter till den verksamhet som äger APIets livscykel>N/A
Teknisk ägare
<Kontaktuppgifter till utvecklare/teknisk förvaltare>Team Unmasked
teamunmasked@sundsvall.se
Länkar
Källkod
https://github.com/OpenSundsvall/api-service-remindandinform
FAQ
<FAQ>