-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathopenapi.yaml
More file actions
208 lines (208 loc) · 6.07 KB
/
openapi.yaml
File metadata and controls
208 lines (208 loc) · 6.07 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
openapi: 3.0.3
info:
title: ZWP Dashboard
version: 0.0.1
servers:
- url: http://localhost:8000
paths:
/api/trigger-import-run:
get: # should perhaps be a POST for semantic reasons, but has to be GET in order to be usable by our web cron
summary: Trigger a run to fetch the last registrations from helloasso and register them in the needed groups
parameters:
- name: debug
in: query
required: false
schema:
type: boolean
- name: token
in: query
required: true
schema:
type: string
responses:
"204":
description: OK
/api/slack-accounts-to-reactivate:
get:
summary: "Return the emails of members which have a deactivated slack (which likely need to be manually re-enabled)"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimestampedSlackUserList'
/api/slack-accounts-to-deactivate:
get:
summary: "Return the email that match an active Slack account but not an up to date member"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TimestampedSlackUserList'
/api/log-error-if-there-are-slack-accounts-to-deactivate:
get:
summary: "check if there are slack accounts to deactivate and log an error (hence, possibly, get an alert) if there are any"
parameters:
- name: token
in: query
required: true
schema:
type: string
responses:
"204":
description: OK
/api/update-user-password:
post:
summary: "Make it possible for a user to change his or her password"
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- currentPassword
- newPassword
properties:
newPassword:
type: string
currentPassword:
type: string
responses:
"204":
description: OK
"400":
description: Missing new password
"401":
description: User is not authenticated
"403":
description: currentPassword is incorrect
/api/has-totp-enabled:
get:
summary: finds out whether the user has totp activated
responses:
"200":
description: OK
content:
text/plain:
schema:
type: boolean
/api/disable-totp:
post:
summary: disable totp for the user
responses:
"204":
description: OK
/api/generate-totp-secret:
post:
summary: generates and returns a totp secret for the user (but does not opt-in the user yet)
responses:
"200":
description: QR code that the user should scan
content:
image/png:
schema:
type: string
format: binary
"400":
description: user already enabled totp
"401":
description: user is not authenticated
/api/enable-totp:
post:
summary: enable totp for the user
requestBody:
content:
application/json:
schema:
type: object
required:
- totp
properties:
totp:
type: string
responses:
"204":
description: Totp is successfully enabled for the user
"400":
description: Totp has not been enabled for the user (probably because the submitted code is not ok)
/api/members:
get:
summary: Get the list of members (both current and former ones)
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
type: object
required:
- userId
- firstName
- lastName
- email
- helloAssoLastRegistrationEventId
- firstRegistrationDate
- isZWProfessional
- lastRegistrationDate
- additionalEmails
- isRegistrationUpToDate
properties:
userId:
type: integer
firstName:
type: string
lastName:
type: string
email:
type: string
postalCode:
type: string
helloAssoLastRegistrationEventId:
type: integer
city:
type: string
howDidYouKnowZwp:
type: string
wantToDo:
type: string
firstRegistrationDate:
type: string
format: date
phone:
type: string
lastRegistrationDate:
type: string
format: date
isZWProfessional:
type: boolean
additionalEmails:
type: array
items:
type: string
format: email
isRegistrationUpToDate:
type: boolean
components:
schemas:
TimestampedSlackUserList:
type: object
required:
- isFresh
- timestamp
- members
properties:
isFresh:
type: boolean
timestamp:
type: integer
members:
type: array
items:
type: string
format: email