Repository navigation
Expand file tree
/
Copy pathpaths.yaml
More file actions
127 lines (124 loc) · 3.93 KB
/
Copy pathpaths.yaml
File metadata and controls
127 lines (124 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
paths:
/categories:
post:
tags: [Categories]
summary: Create category
operationId: createCategory
requestBody:
required: true
content:
application/json:
schema:
$ref: ../common/schemas.yaml#/components/schemas/CategoryCreate
responses:
"201":
description: Category created
content:
application/json:
schema:
allOf:
- $ref: ../common/schemas.yaml#/components/schemas/ApiResponse
- type: object
properties:
data:
type: object
properties:
category:
$ref: ../common/schemas.yaml#/components/schemas/Category
"400":
$ref: ../common/responses.yaml#/components/responses/BadRequest
"401":
$ref: ../common/responses.yaml#/components/responses/Unauthorized
get:
tags: [Categories]
summary: List user categories
operationId: listCategories
parameters:
- name: type
in: query
schema:
type: string
enum: [income, expense]
responses:
"200":
description: Categories listed
content:
application/json:
schema:
allOf:
- $ref: ../common/schemas.yaml#/components/schemas/ApiResponse
- type: object
properties:
data:
type: array
items:
$ref: ../common/schemas.yaml#/components/schemas/Category
"401":
$ref: ../common/responses.yaml#/components/responses/Unauthorized
/categories/{id}:
patch:
tags: [Categories]
summary: Update category
operationId: updateCategory
parameters:
- name: id
in: path
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: ../common/schemas.yaml#/components/schemas/CategoryUpdate
responses:
"200":
description: Category updated
content:
application/json:
schema:
allOf:
- $ref: ../common/schemas.yaml#/components/schemas/ApiResponse
- type: object
properties:
data:
type: object
properties:
category:
$ref: ../common/schemas.yaml#/components/schemas/Category
"401":
$ref: ../common/responses.yaml#/components/responses/Unauthorized
"403":
$ref: ../common/responses.yaml#/components/responses/Forbidden
"404":
$ref: ../common/responses.yaml#/components/responses/NotFound
delete:
tags: [Categories]
summary: Delete category
operationId: deleteCategory
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
"204":
description: Category deleted
"401":
$ref: ../common/responses.yaml#/components/responses/Unauthorized
"403":
$ref: ../common/responses.yaml#/components/responses/Forbidden
"404":
$ref: ../common/responses.yaml#/components/responses/NotFound
"409":
description: Category has transactions
content:
application/json:
schema:
$ref: ../common/schemas.yaml#/components/schemas/ErrorResponse
example:
message: "Kategori masih memiliki transaksi."
requestId: "req_abc123"
code: "category.in_use"