def delete(self, risk_type_id): """ Delete a single risk type """ risk_type = RiskType.get_or_404(risk_type_id) risk_type.delete() return ( { "message": SUCCESS_MESSAGES["DELETED"].format("Risk Type"), "status": "success", }, 200, )
def get(self, risk_type_id): """ Get a single risk type """ risk_type = RiskType.get_or_404(risk_type_id) return ( { "data": EagerLoadRiskTypeAttributesSchema().dump(risk_type).data, "message": SUCCESS_MESSAGES["FETCHED"].format("Risk Type"), "status": "success", }, 200, )
def get(self, risk_type_id): """ Get a single risk type risks """ risk_type = RiskType.get_or_404(risk_type_id) risks = risk_type.risks.all() risk_schema = RiskSchema(many=True) return ( { "data": risk_schema.dump(risks).data, "message": SUCCESS_MESSAGES["FETCHED"].format("Risks"), "status": "success", }, 200, )
def put(self, risk_type_id): """ Updates risk type and the corresponding attributes """ risk_type = RiskType.get_or_404(risk_type_id) request_data = request.get_json() request_data['id'] = risk_type.id risk_type_schema = RiskTypeSchema() risk_type_data = risk_type_schema.load_object_into_schema(request_data, partial=True) attributes_data = request_data.get('customAttributes') attributes_schema = AttributeSchema(many=True) if attributes_data: attributes_schema_data = attributes_schema.load_object_into_schema( attributes_data, partial=True) parse_attributes_data(risk_type, attributes_schema_data, risk_type_id) risk_type.update(**risk_type_data) attributes = attributes_schema.dump(risk_type.attributes.all()).data risk_type_data = risk_type_schema.dump(risk_type).data response = jsonify({ "status": 'success', "message": SUCCESS_MESSAGES['UPDATED'].format('Risk type'), "data": { **risk_type_data, "customAttributes": attributes } }) response.status_code = 200 return response