def save_resource(self):
data = request.json if isinstance(request.json, list) else [request.json]
objects, errors = self.schema().load(data, session=db.session, many=True)
if errors:
db.session.rollback()
return {'error': True, 'message': str(errors)}, 400
if self.has_add_permission(objects):
db.session.add_all(objects)
else:
db.session.rollback()
return {'error': True, 'message': 'Forbidden Permission Denied To Add Resource'}, 403
try:
db.session.commit()
except IntegrityError as e:
db.session.rollback()
print(e)
raise SQLIntegrityError(data=data, message='Integrity Error', operation='Adding Resource', status=400)
except OperationalError:
db.session.rollback()
raise SQlOperationalError(data=data, message='Operational Error', operation='Adding Resource', status=400)
return {'success': True, 'message': 'Resource added successfully',
'data': self.schema(exclude=tuple(self.obj_exclude), only=tuple(self.obj_only))
.dump(objects, many=True).data}, 201
评论列表
文章目录