예제 #1
0
    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,
        )
예제 #2
0
    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,
        )
예제 #3
0
    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,
        )
예제 #4
0
    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