Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0c5fb42

Browse files
committed
ADD error codes
1 parent 596cc80 commit 0c5fb42

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

prototipo/projeto/ext/api/views.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
from flask_restful import Resource, reqparse
55

66
from sqlalchemy.exc import IntegrityError
7+
from sqlalchemy.orm.exc import UnmappedInstanceError
78

89
from projeto.ext.db import db
910

1011
from .models import Estacao, Sensor, Leitura
1112

13+
HTTP_RESPONSE_CREATED = 201
14+
HTTP_RESPONSE_NOT_FOUND = 404
15+
1216

1317
class ApiEstacao(Resource):
1418
def get(self):
@@ -42,7 +46,7 @@ def post(self):
4246

4347
db.session.add(estacao)
4448
db.session.commit()
45-
return {"created": estacao.json()}
49+
return {"created": estacao.json()}, HTTP_RESPONSE_CREATED
4650

4751

4852
class ApiEstacaoId(Resource):
@@ -52,7 +56,7 @@ def get(self, estacao_id):
5256
return {"resource": estacao.json()}
5357

5458
except AttributeError:
55-
return {"error": "Recurso inexistente!"}
59+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
5660

5761
# @jwt_required()
5862
def put(self, estacao_id):
@@ -77,7 +81,7 @@ def put(self, estacao_id):
7781
return {"updated": estacao.json()}
7882

7983
except (AttributeError, IntegrityError):
80-
return {"error": "Recurso inexistente!"}
84+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
8185

8286
# @jwt_required()
8387
def delete(self, estacao_id):
@@ -87,8 +91,8 @@ def delete(self, estacao_id):
8791
db.session.commit()
8892
return {"deleted": estacao.json()}
8993

90-
except IntegrityError:
91-
return {"error": "Recurso inexistente!"}
94+
except (IntegrityError, UnmappedInstanceError):
95+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
9296

9397

9498
class ApiEstacaoIdSensor(Resource):
@@ -100,7 +104,7 @@ def get(self, estacao_id):
100104
return {"resources": data}
101105

102106
except AttributeError:
103-
return {"error": "Recurso inexistente!"}
107+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
104108

105109
# @jwt_required()
106110
def post(self, estacao_id):
@@ -129,10 +133,10 @@ def post(self, estacao_id):
129133
db.session.add(sensor)
130134
db.session.commit()
131135

132-
return {"created": sensor.json()}
136+
return {"created": sensor.json()}, HTTP_RESPONSE_CREATED
133137

134138
except IntegrityError:
135-
return {"error": "Recurso inexistente!"}
139+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
136140

137141

138142
class ApiSensorId(Resource):
@@ -142,7 +146,7 @@ def get(self, sensor_id):
142146
return {"resource": sensor.json()}
143147

144148
except AttributeError:
145-
return {"error": "Recurso inexistente!"}
149+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
146150

147151
# @jwt_required()
148152
def put(self, sensor_id):
@@ -168,7 +172,7 @@ def put(self, sensor_id):
168172
return {"updated": sensor.json()}
169173

170174
except (AttributeError, IntegrityError):
171-
return {"error": "Recurso inexistente!"}
175+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
172176

173177
# @jwt_required()
174178
def delete(self, sensor_id):
@@ -178,8 +182,8 @@ def delete(self, sensor_id):
178182
db.session.commit()
179183
return {"deleted": sensor.json()}
180184

181-
except IntegrityError:
182-
return {"error": "Recurso inexistente!"}
185+
except (IntegrityError, UnmappedInstanceError):
186+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
183187

184188

185189
class ApiSensorIdParam(Resource):
@@ -193,7 +197,7 @@ def get(self, sensor_id, param):
193197
return {"resource": leituras}
194198

195199
except AttributeError:
196-
return {"error": "Recurso inexistente!"}
200+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
197201

198202
# @jwt_required()
199203
def post(self, sensor_id, param):
@@ -219,10 +223,10 @@ def post(self, sensor_id, param):
219223

220224
db.session.add(leitura)
221225
db.session.commit()
222-
return {"created": leitura.json()}
226+
return {"created": leitura.json()}, HTTP_RESPONSE_CREATED
223227

224228
except IntegrityError:
225-
return {"error": "Recurso inexistente!"}
229+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND
226230

227231

228232
class ApiSensorIdParamLast(Resource):
@@ -239,4 +243,4 @@ def get(self, sensor_id, param, qty):
239243
return {"resources": []}
240244

241245
except AttributeError:
242-
return {"error": "Recurso inexistente!"}
246+
return {"error": "Recurso inexistente!"}, HTTP_RESPONSE_NOT_FOUND

0 commit comments

Comments
 (0)