This repository has been archived by the owner on Oct 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtasks_demo.yaml
141 lines (141 loc) · 3.77 KB
/
tasks_demo.yaml
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
swagger: "2.0"
info:
title: Sample Report API for GDG DevFest 2022
description: This API shows how Synchronous endpoint
can be converted to Asynchronous
version: 0.1.0
schemes:
- "https"
paths:
/report/sync:
get:
summary: Generate Transaction Report Sync
parameters:
- in: query
name: start
description: start timestamp
type: string
format: date
required: true
- in: query
name: end
description: end timestamp
type: string
format: date
required: true
responses:
"200":
description: OK
schema:
type: array
items:
type: object
properties:
date:
type: string
format: date
count:
type: integer
description: transactions count
amount:
type: integer
format: money
description: transactions total amount
/report/async:
post:
summary: Generate Transaction Report Async
consumes:
- application/x-www-form-urlencoded
parameters:
- in: formData
name: sid
description: source id of report
type: string
format: uuid
required: true
- in: formData
name: start
description: start timestamp
type: string
format: date
required: true
- in: formData
name: end
description: end timestamp
type: string
format: date
required: true
responses:
"200":
description: OK
schema:
type: object
properties:
task_id:
description: Task id assigned to the requested report
type: integer
"409":
description: Conflict, task with same source id already exists
schema:
type: object
properties:
task_id:
description: Task id assigned to the requested report
type: integer
start:
description: start timestamp of
request with source id provided
type: string
format: date
end:
description: end timestamp of request with source id provided
type: string
format: date
/report/status/{task_id}:
get:
summary: Get Task Status
parameters:
- in: path
name: task_id
description: task id returned from /report/async
type: integer
required: true
responses:
"200":
description: OK
schema:
type: object
required: ['status']
properties:
status:
type: string
enum: ['processing', 'failed', 'completed']
failed_reason:
type: string
/report/result/{task_id}:
get:
summary: Get Task Results
parameters:
- in: path
name: task_id
description: task id returned from /report/async
type: integer
required: true
responses:
"200":
description: OK
schema:
type: array
items:
type: object
properties:
date:
type: string
format: date
count:
type: integer
description: transactions count
amount:
type: integer
format: money
description: transactions total amount