Esempio n. 1
0
def test_name_property():
    property = models.Property()
    property.key = 'key'
    property.type = 'type'
    eq_(
        str(property),
        "<Property: {} {} {}>".format(property.id, property.type,
                                      property.key))
Esempio n. 2
0
def create_property_from_json(json):
    property = models.Property()
    property.id = json['id']
    property.type = json['type']
    property.key = json['key']
    property.created_at = get_datetime_from_json_attr(json, 'created_at')
    property.updated_at = get_datetime_from_json_attr(json, 'updated_at')

    return property
Esempio n. 3
0
class Property(flask_restful.Resource):
    def __init__(self):
        self.parsers = {'get': reqparse.RequestParser()}
        self.parsers['get'].add_argument('key').add_argument('type')

    @validate_client()
    @validate_id()
    def get(self, client, id=None):
        args = self.parsers['get'].parse_args()
        key = args['key']
        type = args['type']

        if id:
            property = models.Property.get(client.id, id)

            if property is None:
                return marshal(
                    {'error': {
                        'message': 'Property {} not found'.format(id)
                    }}, error_fields), 404

            return marshal({'property': property}, one_property_fields)
        else:
            response = {
                'properties': models.Property.all(client.id, key, type)
            }
            return marshal(response, properties_fields)

    @validate_client(True)
    def post(self, client):
        json = request.get_json(silent=True)
        logging.getLogger(__name__).debug('POST property: %s', json)

        try:
            validate(json, property_input_format)
        except ValidationError, e:
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400

        property = models.Property()
        mapper.fill_from_json(property, json, mapper.property_mapping)
        property.client = client
        db.session.add(property)

        try:
            db.session.commit()
            db.session.refresh(property)
        except IntegrityError, e:
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 409