-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschemas.py
227 lines (192 loc) · 6.5 KB
/
schemas.py
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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
from typing import List, Optional
from pydantic import BaseModel, validator, StrictStr, StrictInt, StrictFloat
#Basado en https://fastapi.tiangolo.com/tutorial/sql-databases/
def type_function(value):
get_type = lambda value: str(type(value)).split("'")[1]
return get_type
class UserBase(BaseModel):
username: StrictStr
name: StrictStr
age : StrictInt
password: StrictStr
psu_score: Optional[StrictInt] = None
university: Optional[StrictStr] = None
gpa_score: Optional[StrictFloat] = None
job: Optional[StrictStr] = None
salary: Optional[StrictFloat] = None
promotion: Optional[bool] = None
hospital: Optional[StrictStr] = None
operations: Optional[List[StrictStr]] = None
medical_debt: Optional[StrictFloat] = None
class Config:
orm_mode = True
'''
@validator('username')
def username_validator(cls, value):
print(isinstance(value,str))
if value != None and isinstance(value, str) == False:
raise ValueError("Invalid username")
@validator("name")
def name_validator(cls, value):
type = type_function(value)
if type != 'str':
raise ValueError("Invalid name")
@validator("password")
def password_validator(cls, value):
type = type_function(value)
if type != 'str':
raise ValueError("Invalid password")
@validator("age")
def age_validator(cls, value):
type = type_function(value)
if type != 'int':
raise ValueError("Invalid age")
@validator("psu_score")
def psu_validator(cls, value):
type = type_function(value)
if value != None and type != 'int':
raise ValueError("Invalid psu_score")
@validator("university")
def university_validator(cls, value):
type = type_function(value)
if value != None and isinstance(value, str) == False:
raise ValueError("Invalid university")
@validator("gpa_score")
def gpa_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError("Invalid gpa_score")
@validator("salary")
def salary_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError("Invalid salary")
@validator("job")
def job_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError("Invalid job")
@validator("promotion")
def promotion_validator(cls, value):
type = type_function(value)
if value != None and type != 'bool':
raise ValueError("Invalid promotion")
@validator("hospital")
def hospital_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError("Invalid hospital")
@validator("medical_debt")
def medical_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError("Invalid medical debt")
'''
class UserUpdate(BaseModel):
username: Optional[StrictStr] = None
#name: Optional[StrictStr] = None
age : Optional[StrictInt] = None
#password: Optional[StrictStr] = None
psu_score: Optional[StrictInt] = None
#university: Optional[StrictStr] = None
#gpa_score: Optional[StrictFloat] = None
job: Optional[StrictStr] = None
salary: Optional[StrictFloat] = None
promotion: Optional[bool] = None
hospital: Optional[StrictStr] = None
#operations: Optional[List[StrictStr]] = None
medical_debt: Optional[StrictFloat] = None
class Config:
orm_mode = True
'''
@validator("username")
def username_validator(cls, value):
type = type_function(value)
print(type)
#if value != None and type != 'str':
#raise ValueError("Invalid username")
@validator("name")
def name_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError()
@validator("password")
def password_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError()
@validator("age")
def age_validator(cls, value):
type = type_function(value)
if value != None and type != 'int':
raise ValueError()
@validator("psu_score")
def psu_validator(cls, value):
type = type_function(value)
if value != None and type != 'int':
raise ValueError()
@validator("university")
def university_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError("Invalid university")
@validator("gpa_score")
def gpa_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError()
@validator("salary")
def salary_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError()
@validator("job")
def job_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError()
@validator("promotion")
def promotion_validator(cls, value):
type = type_function(value)
if value != None and type != 'bool':
raise ValueError()
@validator("hospital")
def hospital_validator(cls, value):
type = type_function(value)
if value != None and type != 'str':
raise ValueError()
@validator("medical_debt")
def medical_validator(cls, value):
type = type_function(value)
if value != None and type != 'float':
raise ValueError()
'''
class User(UserBase):
id: str
class Config:
orm_mode = True
#____________________________________________-
class UserToken(BaseModel):
id: str
token: str
user_id: str
validez: bool
class Config:
orm_mode = True
#____________________________________________-
class AccessToken(BaseModel):
id: str
token: str
expiration : int
user_id: str
scope: str
class Config:
orm_mode = True
#____________________________________________-
class AccessTokenRequest(BaseModel):
id: int
grant_url: str
nonce : str
expiration : int
class Config:
orm_mode = True