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 | ||
---|---|---|
| ||
|
Open api | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /reminders/2.0
tags:
- name: Reminder
description: Remind operations
paths:
/reminders:
post:
tags:
- Reminder
summary: Create a new reminder.
operationId: createReminder
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReminderRequest'
required: true
responses:
"201":
description: Created
headers:
Location:
style: simple
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
/reminders/send:
post:
tags:
- Reminder
summary: Send reminders.
operationId: sendReminders
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendRemindersRequest'
required: true
responses:
"204":
description: Successful operation
"400":
description: Bad request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
/reminders/{reminderId}:
get:
tags:
- Reminder
summary: Returns a reminder by reminder-id
operationId: getReminderByReminderId
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
type: string
example: R-81471222-5798-11e9-ae24-57fa13b361e1
responses:
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"200":
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Reminder'
application/problem+json:
schema:
$ref: '#/components/schemas/Reminder'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
delete:
tags:
- Reminder
summary: Deletes a reminder.
operationId: deleteReminder
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
type: string
example: R-81471222-5798-11e9-ae24-57fa13b361e1
responses:
"204":
description: Successful operation
"400":
description: Bad request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
patch:
tags:
- Reminder
summary: Manage updates of a reminder.
operationId: updateReminder
parameters:
- name: reminderId
in: path
description: Reminder ID
required: true
schema:
type: string
example: R-81471222-5798-11e9-ae24-57fa13b361e1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateReminderRequest'
required: true
responses:
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"200":
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Reminder'
application/problem+json:
schema:
$ref: '#/components/schemas/Reminder'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas
| Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
/
| /persons
| {personId}:
get:
tags:
- Reminder
summary: Returns all reminders for a person.
operationId: getRemindersByPersonId
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'
application/problem+json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
/reminders/persons/{personId}/organizations/{organizationId}:
get:
tags:
- Reminder
summary: Returns all reminders for a person and an organization which the person
represent.
operationId: getRemindersByPersonIdAndOrganizationId
parameters:
- name: personId
in: path
description: Person ID
required: true
schema:
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e2
- name: organizationId
in: path
description: Organization ID
required: true
schema:
type: string
example: 81471222-5798-11e9-ae24-57fa13b361e3
responses:
"200":
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
application/problem+json:
schema:
type: array
items:
$ref: '#/components/schemas/Reminder'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
/
| :
get:
tags:
- API
summary: OpenAPI
operationId: getApiDocs
responses:
"200":
description: OK
content:
application/yaml:
schema:
type: string
security:
- ApiKeyAuth: []
components:
schemas:
ReminderRequest:
required:
- action
- personId
- reminderDate
type: object
properties:
personId:
type: string
description: Person Id
example: 81471222-5798-11e9-ae24-57fa13b361e2
organizationId:
type: string
description: Organization Id
example: 81471222-5798-11e9-ae24-57fa13b361e3
action:
maxLength: 8192
minLength: 0
type: string
description: What should be done
example: Renew application
note:
maxLength: 2048
minLength: 0
type: string
description: Reminder note
example: A short note about the reminder
caseId:
maxLength: 255
minLength: 0
type: string
description: Id for the case
example: "12345"
caseLink:
maxLength: 512
minLength: 0
type: string
description: Link to the case
example: http://test.sundsvall.se/case1337
reminderDate:
type: string
description: Date for reminding
format: date
example: 2021-11-01
description: Reminder creation request model
Reminder:
type: object
properties:
reminderId:
type: string
description: Reminder ID
example: R-81471222-5798-11e9-ae24-57fa13b361e1
personId:
type: string
description: Person ID
example: 81471222-5798-11e9-ae24-57fa13b361e2
organizationId:
type: string
description: Organization ID
example: 81471222-5798-11e9-ae24-57fa13b361e3
action:
type: string
description: What should be done
example: Renew application
note:
type: string
description: Reminder note
example: A short note about the reminder
caseId:
type: string
description: Case ID
example: "12345"
caseLink:
type: string
description: Link to the case
example: http://test.sundsvall.se/case12345
reminderDate:
type: string
description: Date for reminding
format: date
example: 2021-11-01
description: Reminder model
Problem:
type: object
properties:
instance:
type: string
format: uri
type:
type: string
format: uri
parameters:
type: object
additionalProperties:
type: object
status:
$ref: '#/components/schemas/StatusType'
title:
type: string
detail:
type: string
StatusType:
type: object
properties:
statusCode:
type: integer
format: int32
reasonPhrase:
type: string
SendRemindersRequest:
required:
- reminderDate
type: object
properties:
reminderDate:
type: string
description: Date for reminding
format: date
example: 2021-11-01
description: Request model for sending reminders of a specified date
UpdateReminderRequest:
type: object
properties:
personId:
type: string
description: Person Id
example: 81471222-5798-11e9-ae24-57fa13b361e2
organizationId:
type: string
description: Organization Id
example: 81471222-5798-11e9-ae24-57fa13b361e3
action:
maxLength: 8192
minLength: 0
type: string
description: What should be done
example: Renew application
note:
maxLength: 2048
minLength: 0
type: string
description: Reminder note
example: A short note about the reminder
caseId:
maxLength: 255
minLength: 0
type: string
description: Id for the case
example: "12345"
caseLink:
maxLength: 512
minLength: 0
type: string
description: Link to the case
example: http://test.sundsvall.se/case1337
reminderDate:
type: string
description: Date for reminding
format: date
example: 2021-11-01
description: Reminder update request model
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
||||||||||||||||||
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>