Files
dash/api/dash_api.yaml
2022-11-26 18:41:39 +01:00

318 lines
7.0 KiB
YAML

openapi: '3.0.2'
info:
title: Dash API
version: '0.1'
servers:
- url: http://localhost:18010/api/v1
- url: http://localhost:8080/api/v1
- url: https://dash.pander.me/api/v1
paths:
/journal/entry/:
post:
operationId: writeJournalEntry
tags:
- journal
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JournalEntry'
responses:
'200':
description: Journal entry successfully written.
/journal/entry/{date}:
get:
operationId: getJournalEntryForDate
tags:
- journal
responses:
'200':
description: A journal entry for a specific date.
content:
application/json:
schema:
$ref: '#/components/schemas/JournalEntry'
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: 2022-02-18
delete:
operationId: deleteJournalEntryForDate
tags:
- journal
responses:
'200':
description: Journal entry successfully deleted.
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: 2022-02-18
/plan/day/entry/:
post:
operationId: savePlanForDay
tags:
- plan
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDay'
responses:
'200':
description: Plan successfully written.
/plan/day/entry/{date}:
get:
operationId: getPlanDayForDate
tags:
- plan
responses:
'200':
description: A plan for a specific date.
content:
application/json:
schema:
$ref: '#/components/schemas/PlanDay'
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: 2022-02-18
/plan/week/entry/:
post:
operationId: savePlanForWeek
tags:
- plan
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlanWeek'
responses:
'200':
description: Plan successfully written.
/plan/week/entry/{date}:
get:
operationId: getPlanWeekForDate
tags:
- plan
responses:
'200':
description: A plan for a specific week.
content:
application/json:
schema:
$ref: '#/components/schemas/PlanWeek'
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: 2022-02-18
/plan/month/entry/:
post:
operationId: savePlanForMonth
tags:
- plan
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PlanMonth'
responses:
'200':
description: Plan successfully written.
/plan/month/entry/{date}:
get:
operationId: getPlanMonthForDate
tags:
- plan
responses:
'200':
description: A plan for a specific week.
content:
application/json:
schema:
$ref: '#/components/schemas/PlanMonth'
parameters:
- name: date
in: path
required: true
schema:
type: string
format: date
example: 2022-02-18
components:
schemas:
JournalEntry:
type: object
required:
- date
properties:
date:
type: string
format: date
example: 2022-02-18
thankful:
type: array
items:
type: string
example:
- "thankful 1"
- "thankful 2"
- "thankful 3"
looking_forward:
type: array
items:
type: string
example:
- "looking forward 1"
- "looking forward 2"
- "looking forward 3"
been_great:
type: array
items:
type: string
example:
- "been great 1"
- "been great 2"
- "been great 3"
do_better:
type: array
items:
type: string
example:
- "do better 1"
- "do better 2"
- "do better 3"
journal:
type: string
example: "journal entry 1"
PlanDay:
type: object
required:
- date
properties:
date:
type: string
format: date
example: 2022-02-18
morning:
type: array
items:
type: string
example:
- "morning 1"
- "morning 2"
- "morning 3"
midday:
type: array
items:
type: string
example:
- "midday 1"
- "midday 2"
- "midday 3"
afternoon:
type: array
items:
type: string
example:
- "afternoon 1"
- "afternoon 2"
- "afternoon 3"
evening:
type: array
items:
type: string
example:
- "evening 1"
- "evening 2"
- "evening 3"
pleasant:
type: array
items:
type: string
example:
- "pleasant 1"
- "pleasant 2"
- "pleasant 3"
reminders:
type: array
items:
type: string
example:
- "reminders 1"
- "reminders 2"
- "reminders 3"
PlanWeek:
type: object
required:
- date
properties:
date:
type: string
format: date
example: 2022-02-18
items:
type: array
items:
$ref: '#/components/schemas/PlanWeekItem'
example: '[{"item": "witem 1"}, {"item": "witem 2", "numTodos":3, "numDone":2}, {"item": "witem 3", "numTodos":2, "numDone":2}]'
PlanWeekItem:
type: object
required:
- item
properties:
item:
type: string
example: 'planWeekItem'
numTodos:
type: integer
format: int32
example: 3
numDone:
type: integer
format: int32
example: 2
PlanMonth:
type: object
required:
- date
properties:
date:
type: string
format: date
example: 2022-02-18
items:
type: array
items:
type: string
example: '["mitem1", "mitem2", "mitem3"]'