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"]'