Beispiel #1
0
    def get_one(self, field_id):
        """Return a field.

        :param field_id: UUID of the field to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.get_field(uuid=field_id)
            return field_models.Field(**field_db.export_model())
        except db_api.NoSuchField as e:
            pecan.abort(404, six.text_type(e))
Beispiel #2
0
    def get_all(self, service_id):
        """Get the field list.

        :param service_id: Service's UUID to filter on.
        :return: List of every fields.
        """
        hashmap = db_api.get_instance()
        field_list = []
        fields_uuid_list = hashmap.list_fields(service_id)
        for field_uuid in fields_uuid_list:
            field_db = hashmap.get_field(field_uuid)
            field_list.append(field_models.Field(**field_db.export_model()))
        res = field_models.FieldCollection(fields=field_list)
        return res
Beispiel #3
0
    def post(self, field_data):
        """Create a field.

        :param field_data: Informations about the field to create.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.create_field(field_data.service_id,
                                            field_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += field_db.field_id
            return field_models.Field(**field_db.export_model())
        except (db_api.FieldAlreadyExists, db_api.NoSuchService) as e:
            pecan.abort(409, six.text_type(e))