Skip to content

Commit a517317

Browse files
committed
fix(mobile): update swagger_parser config to latest format
- Migrate from deprecated apis structure to schema_path format - Add use_freezed3: true for Freezed 3.x compatibility - Run build_runner to generate freezed/retrofit files - Fix web lint errors in providers.tsx and global-error.tsx
1 parent d55105d commit a517317

55 files changed

Lines changed: 4395 additions & 16 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/api/openapi.json

Lines changed: 373 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,373 @@
1+
{
2+
"openapi": "3.1.0",
3+
"info": {
4+
"title": "fullstack-starter-api",
5+
"version": "0.1.0"
6+
},
7+
"paths": {
8+
"/health": {
9+
"get": {
10+
"summary": "Health Check",
11+
"description": "Detailed health check endpoint with service statuses.",
12+
"operationId": "health_check_health_get",
13+
"responses": {
14+
"200": {
15+
"description": "Successful Response",
16+
"content": {
17+
"application/json": {
18+
"schema": {
19+
"$ref": "#/components/schemas/HealthResponse"
20+
}
21+
}
22+
}
23+
}
24+
}
25+
}
26+
},
27+
"/health/live": {
28+
"get": {
29+
"summary": "Liveness Check",
30+
"description": "Simple liveness probe for Kubernetes.",
31+
"operationId": "liveness_check_health_live_get",
32+
"responses": {
33+
"200": {
34+
"description": "Successful Response",
35+
"content": {
36+
"application/json": {
37+
"schema": {
38+
"additionalProperties": {
39+
"type": "string"
40+
},
41+
"type": "object",
42+
"title": "Response Liveness Check Health Live Get"
43+
}
44+
}
45+
}
46+
}
47+
}
48+
}
49+
},
50+
"/health/ready": {
51+
"get": {
52+
"summary": "Readiness Check",
53+
"description": "Readiness probe - checks if app can serve traffic.",
54+
"operationId": "readiness_check_health_ready_get",
55+
"responses": {
56+
"200": {
57+
"description": "Successful Response",
58+
"content": {
59+
"application/json": {
60+
"schema": {
61+
"additionalProperties": {
62+
"type": "string"
63+
},
64+
"type": "object",
65+
"title": "Response Readiness Check Health Ready Get"
66+
}
67+
}
68+
}
69+
}
70+
}
71+
}
72+
},
73+
"/api/auth/login": {
74+
"post": {
75+
"tags": [
76+
"authentication"
77+
],
78+
"summary": "Login",
79+
"description": "OAuth login endpoint.\n\nVerify OAuth token, create/update user, and issue JWE tokens.",
80+
"operationId": "login_api_auth_login_post",
81+
"requestBody": {
82+
"content": {
83+
"application/json": {
84+
"schema": {
85+
"$ref": "#/components/schemas/OAuthLoginRequest"
86+
}
87+
}
88+
},
89+
"required": true
90+
},
91+
"responses": {
92+
"200": {
93+
"description": "Successful Response",
94+
"content": {
95+
"application/json": {
96+
"schema": {
97+
"$ref": "#/components/schemas/TokenResponse"
98+
}
99+
}
100+
}
101+
},
102+
"422": {
103+
"description": "Validation Error",
104+
"content": {
105+
"application/json": {
106+
"schema": {
107+
"$ref": "#/components/schemas/HTTPValidationError"
108+
}
109+
}
110+
}
111+
}
112+
}
113+
}
114+
},
115+
"/api/auth/refresh": {
116+
"post": {
117+
"tags": [
118+
"authentication"
119+
],
120+
"summary": "Refresh Token",
121+
"description": "Refresh access token using refresh token.",
122+
"operationId": "refresh_token_api_auth_refresh_post",
123+
"requestBody": {
124+
"content": {
125+
"application/json": {
126+
"schema": {
127+
"$ref": "#/components/schemas/RefreshTokenRequest"
128+
}
129+
}
130+
},
131+
"required": true
132+
},
133+
"responses": {
134+
"200": {
135+
"description": "Successful Response",
136+
"content": {
137+
"application/json": {
138+
"schema": {
139+
"$ref": "#/components/schemas/TokenResponse"
140+
}
141+
}
142+
}
143+
},
144+
"422": {
145+
"description": "Validation Error",
146+
"content": {
147+
"application/json": {
148+
"schema": {
149+
"$ref": "#/components/schemas/HTTPValidationError"
150+
}
151+
}
152+
}
153+
}
154+
}
155+
}
156+
},
157+
"/api/auth/logout": {
158+
"post": {
159+
"tags": [
160+
"authentication"
161+
],
162+
"summary": "Logout",
163+
"description": "Logout endpoint.\n\nClient should remove tokens from localStorage.",
164+
"operationId": "logout_api_auth_logout_post",
165+
"responses": {
166+
"204": {
167+
"description": "Successful Response"
168+
}
169+
}
170+
}
171+
}
172+
},
173+
"components": {
174+
"schemas": {
175+
"HTTPValidationError": {
176+
"properties": {
177+
"detail": {
178+
"items": {
179+
"$ref": "#/components/schemas/ValidationError"
180+
},
181+
"type": "array",
182+
"title": "Detail"
183+
}
184+
},
185+
"type": "object",
186+
"title": "HTTPValidationError"
187+
},
188+
"HealthResponse": {
189+
"properties": {
190+
"status": {
191+
"type": "string",
192+
"enum": [
193+
"healthy",
194+
"degraded",
195+
"unhealthy"
196+
],
197+
"title": "Status"
198+
},
199+
"version": {
200+
"type": "string",
201+
"title": "Version",
202+
"default": "0.1.0"
203+
},
204+
"services": {
205+
"additionalProperties": {
206+
"$ref": "#/components/schemas/ServiceStatus"
207+
},
208+
"type": "object",
209+
"title": "Services"
210+
}
211+
},
212+
"type": "object",
213+
"required": [
214+
"status",
215+
"services"
216+
],
217+
"title": "HealthResponse",
218+
"description": "Health check response with detailed service statuses."
219+
},
220+
"OAuthLoginRequest": {
221+
"properties": {
222+
"provider": {
223+
"type": "string",
224+
"enum": [
225+
"google",
226+
"github",
227+
"facebook"
228+
],
229+
"title": "Provider"
230+
},
231+
"access_token": {
232+
"type": "string",
233+
"title": "Access Token"
234+
},
235+
"email": {
236+
"type": "string",
237+
"title": "Email"
238+
},
239+
"name": {
240+
"anyOf": [
241+
{
242+
"type": "string"
243+
},
244+
{
245+
"type": "null"
246+
}
247+
],
248+
"title": "Name"
249+
}
250+
},
251+
"type": "object",
252+
"required": [
253+
"provider",
254+
"access_token",
255+
"email"
256+
],
257+
"title": "OAuthLoginRequest",
258+
"description": "OAuth login request."
259+
},
260+
"RefreshTokenRequest": {
261+
"properties": {
262+
"refresh_token": {
263+
"type": "string",
264+
"title": "Refresh Token"
265+
}
266+
},
267+
"type": "object",
268+
"required": [
269+
"refresh_token"
270+
],
271+
"title": "RefreshTokenRequest",
272+
"description": "Refresh token request."
273+
},
274+
"ServiceStatus": {
275+
"properties": {
276+
"status": {
277+
"type": "string",
278+
"enum": [
279+
"healthy",
280+
"unhealthy"
281+
],
282+
"title": "Status"
283+
},
284+
"latency_ms": {
285+
"anyOf": [
286+
{
287+
"type": "number"
288+
},
289+
{
290+
"type": "null"
291+
}
292+
],
293+
"title": "Latency Ms"
294+
},
295+
"error": {
296+
"anyOf": [
297+
{
298+
"type": "string"
299+
},
300+
{
301+
"type": "null"
302+
}
303+
],
304+
"title": "Error"
305+
}
306+
},
307+
"type": "object",
308+
"required": [
309+
"status"
310+
],
311+
"title": "ServiceStatus",
312+
"description": "Individual service health status."
313+
},
314+
"TokenResponse": {
315+
"properties": {
316+
"access_token": {
317+
"type": "string",
318+
"title": "Access Token"
319+
},
320+
"refresh_token": {
321+
"type": "string",
322+
"title": "Refresh Token"
323+
},
324+
"token_type": {
325+
"type": "string",
326+
"title": "Token Type",
327+
"default": "bearer"
328+
}
329+
},
330+
"type": "object",
331+
"required": [
332+
"access_token",
333+
"refresh_token"
334+
],
335+
"title": "TokenResponse",
336+
"description": "Token response."
337+
},
338+
"ValidationError": {
339+
"properties": {
340+
"loc": {
341+
"items": {
342+
"anyOf": [
343+
{
344+
"type": "string"
345+
},
346+
{
347+
"type": "integer"
348+
}
349+
]
350+
},
351+
"type": "array",
352+
"title": "Location"
353+
},
354+
"msg": {
355+
"type": "string",
356+
"title": "Message"
357+
},
358+
"type": {
359+
"type": "string",
360+
"title": "Error Type"
361+
}
362+
},
363+
"type": "object",
364+
"required": [
365+
"loc",
366+
"msg",
367+
"type"
368+
],
369+
"title": "ValidationError"
370+
}
371+
}
372+
}
373+
}

apps/api/scripts/gen_openapi.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
"""Generate OpenAPI schema from FastAPI application."""
22

33
import json
4+
import sys
45
from pathlib import Path
56

7+
# Add the app directory to sys.path to allow importing from src
8+
sys.path.append(str(Path(__file__).parent.parent))
9+
610
from src.main import app
711

812

0 commit comments

Comments
 (0)