示例#1
0
class SearchProviderProxyResource(superdesk.Resource):
    schema = {
        'guid': {
            'type': 'string',
            'required': True
        },
        'desk': superdesk.Resource.rel('desks', False, nullable=True),
        'repo': superdesk.Resource.rel('search_providers',
                                       False,
                                       nullable=True),
        'stage': superdesk.Resource.rel('stages', False, nullable=True),
        'fetch_endpoint': {
            'type': 'string',
            'readonly': True
        },
        'search_provider': {
            'type': 'string',
            'readonly': True
        },
        '_fetchable': {
            'type': 'boolean',
            'readonly': True
        },
    }
    schema.update(get_schema())

    resource_methods = ['GET', 'POST']
    privileges = {'POST': 'archive'}
示例#2
0
class GenerateHighlightsResource(superdesk.Resource):
    """Generate highlights item for given package."""

    schema = {
        'package': {
            # not setting relation here, we will fetch it anyhow
            'type': 'string',
            'required': True,
        },
        'preview': {
            'type': 'boolean',
            'default': False,
        },
        'export': {
            'type': 'boolean',
            'default': False,
        },
        'type': {
            'type': 'string',
            'readonly': True,
        },
    }
    schema.update(get_schema(versioning=True))

    resource_methods = ['POST']
    item_methods = []
    privileges = {'POST': 'highlights'}
示例#3
0
class GenerateHighlightsResource(superdesk.Resource):
    """Generate highlights item for given package."""

    schema = {
        "package": {
            # not setting relation here, we will fetch it anyhow
            "type": "string",
            "required": True,
        },
        "preview": {
            "type": "boolean",
            "default": False,
        },
        "export": {
            "type": "boolean",
            "default": False,
        },
        "type": {
            "type": "string",
            "readonly": True,
        },
    }
    schema.update(get_schema(versioning=True))

    resource_methods = ["POST"]
    item_methods = []
    privileges = {"POST": "highlights"}
示例#4
0
class SearchProviderProxyResource(superdesk.Resource):
    schema = {
        "guid": {
            "type": "string",
            "required": True
        },
        "desk": superdesk.Resource.rel("desks", False, nullable=True),
        "repo": superdesk.Resource.rel("search_providers",
                                       False,
                                       nullable=True),
        "stage": superdesk.Resource.rel("stages", False, nullable=True),
        "fetch_endpoint": {
            "type": "string",
            "readonly": True
        },
        "search_provider": {
            "type": "string",
            "readonly": True
        },
        "_fetchable": {
            "type": "boolean",
            "readonly": True
        },
    }
    schema.update(get_schema())

    resource_methods = ["GET", "POST"]
    privileges = {"POST": "archive"}
示例#5
0
class SearchResource(superdesk.Resource):
    resource_methods = ["GET"]
    item_methods = ["GET"]
    item_url = item_url
    schema = get_schema(versioning=True)
    schema.update(published_item_fields)
    datasource = {"projection": {field: 1 for field in list(schema.keys()) + ["archive_item"]}}

    privileges = {}
示例#6
0
class SearchResource(superdesk.Resource):
    resource_methods = ['GET']
    item_methods = ['GET']
    item_url = item_url
    schema = get_schema(versioning=True)
    schema.update(published_item_fields)
    datasource = {
        'projection':
        {field: 1
         for field in list(schema.keys()) + ['archive_item']}
    }
示例#7
0
class LegalArchiveVersionsResource(LegalResource, ArchiveVersionsResource):
    endpoint_name = LEGAL_ARCHIVE_VERSIONS_NAME
    resource_title = endpoint_name
    schema = get_schema(versioning=True)
    datasource = {
        'source': LEGAL_ARCHIVE_VERSIONS_NAME,
        'projection': {
            'old_version': 0,
            'last_version': 0
        }
    }
示例#8
0
class LegalArchiveHistoryResource(LegalResource, ArchiveHistoryResource):
    endpoint_name = LEGAL_ARCHIVE_HISTORY_NAME
    resource_title = endpoint_name
    schema = get_schema()
    schema.update(
        {
            "update": {"type": "dict", "schema": {}},
        }
    )
    datasource = {"source": LEGAL_ARCHIVE_HISTORY_NAME}
    mongo_indexes = {"item_id": ([("item_id", 1)], {"background": True})}
示例#9
0
class LegalArchiveHistoryResource(LegalResource, ArchiveHistoryResource):
    endpoint_name = LEGAL_ARCHIVE_HISTORY_NAME
    resource_title = endpoint_name
    schema = get_schema()
    schema.update({
        'update': {
            'type': 'dict',
            'schema': {}
        },
    })
    datasource = {'source': LEGAL_ARCHIVE_HISTORY_NAME}
    mongo_indexes = {'item_id': ([('item_id', 1)], {'background': True})}
示例#10
0
class ArchiveLockResource(Resource):
    endpoint_name = 'archive_lock'
    url = 'archive/<{0}:item_id>/lock'.format(item_url)
    schema = get_schema(versioning=True)
    schema.update({
        '_links': {
            'type': 'dict'
        },
    })
    datasource = {'source': 'archive'}
    resource_methods = ['GET', 'POST']
    resource_title = endpoint_name
    privileges = {'POST': 'archive'}
示例#11
0
class ArchiveLockResource(Resource):
    endpoint_name = "archive_lock"
    url = "archive/<{0}:item_id>/lock".format(item_url)
    schema = get_schema(versioning=True)
    schema.update(
        {
            "_links": {"type": "dict"},
        }
    )
    datasource = {"source": "archive"}
    resource_methods = ["GET", "POST"]
    resource_title = endpoint_name
    privileges = {"POST": "archive"}
示例#12
0
class SavedSearchItemsResource(Resource):
    """Saved search items
    Since Eve doesn't support more than one URL for a resource, this resource is being created to fetch items based on
    the search string in the Saved Search document.
    """

    endpoint_name = 'saved_search_items'
    schema = get_schema()

    resource_title = endpoint_name
    url = 'saved_searches/<regex("[a-zA-Z0-9:\\-\\.]+"):saved_search_id>/items'

    resource_methods = ['GET']
    item_methods = []
示例#13
0
class FetchResource(Resource):
    endpoint_name = 'fetch'
    resource_title = endpoint_name

    schema = get_schema(True)
    schema.update({
        'desk': Resource.rel('desks', False, required=True),
        'stage': Resource.rel('stages', False, nullable=True),
        'macro': {'type': 'string'},
        '_links': {'type': 'dict'},
    })

    url = 'ingest/<{0}:id>/fetch'.format(item_url)

    resource_methods = ['POST']
    item_methods = []

    privileges = {'POST': 'fetch'}
class AssignmentsContentResource(Resource):
    endpoint_name = 'assignments_content'
    resource_title = endpoint_name
    url = 'assignments/content'
    schema = get_schema(versioning=True)
    schema.update({
        'assignment_id': {
            'type': 'string',
            'required': True
        },
        'template_name': {
            'type': 'string',
            'required': False
        }
    })
    resource_methods = ['POST']
    item_methods = []

    privileges = {'POST': 'archive'}
示例#15
0
class LegalArchiveResource(LegalResource, ArchiveResource):
    endpoint_name = LEGAL_ARCHIVE_NAME
    resource_title = endpoint_name
    schema = get_schema()
    datasource = {"source": LEGAL_ARCHIVE_NAME}
    versioning = True
    mongo_indexes = ArchiveResource.mongo_indexes.copy()  # type: Any
    mongo_indexes.update(
        {
            "text": (
                [
                    ("headline", "text"),
                    ("slugline", "text"),
                    ("description_text", "text"),
                ],
                TEXT_INDEX_OPTIONS,
            ),
        }
    )
class FetchResource(Resource):
    endpoint_name = "fetch"
    resource_title = endpoint_name

    schema = get_schema(True)
    schema.update(
        {
            "desk": Resource.rel("desks", False, required=True),
            "stage": Resource.rel("stages", False, nullable=True),
            "macro": {"type": "string"},
            "_links": {"type": "dict"},
        }
    )

    url = "ingest/<{0}:id>/fetch".format(item_url)

    resource_methods = ["POST"]
    item_methods = []

    privileges = {"POST": "fetch"}
class PlanningArticleExportResource(Resource):
    schema = get_schema(versioning=True)
    schema.update({
        'items': {
            'type': 'list',
            'required': True,
        },
        'desk':
        Resource.rel('desks', nullable=True),
        'template': {
            'type': 'string'
        },
        'type': {
            'type': 'string',
            'default': 'planning',
        },
        'article_template':
        Resource.rel('content_templates', nullable=True)
    })

    item_methods = []
    resource_methods = ['POST']
    privileges = {'POST': 'planning'}
示例#18
0
class LegalResource(Resource):
    resource_methods = ['GET']
    item_methods = ['GET']
    privileges = {'GET': LEGAL_ARCHIVE_NAME}
    mongo_prefix = 'LEGAL_ARCHIVE'
    schema = get_schema()
示例#19
0
class LegalArchiveVersionsResource(LegalResource, ArchiveVersionsResource):
    endpoint_name = LEGAL_ARCHIVE_VERSIONS_NAME
    resource_title = endpoint_name
    schema = get_schema(versioning=True)
    datasource = {"source": LEGAL_ARCHIVE_VERSIONS_NAME, "projection": {"old_version": 0, "last_version": 0}}
示例#20
0
class LegalResource(Resource):
    resource_methods = ["GET"]
    item_methods = ["GET"]
    privileges = {"GET": LEGAL_ARCHIVE_NAME}
    mongo_prefix = "LEGAL_ARCHIVE"
    schema = get_schema()
示例#21
0
 def __init__(self, data_layer):
     BaseModel.__init__(self, "archive", data_layer,
                        get_schema(versioning=True), ItemValidator())
示例#22
0
class LegalArchiveResource(LegalResource, ArchiveResource):
    endpoint_name = LEGAL_ARCHIVE_NAME
    resource_title = endpoint_name
    schema = get_schema()
    datasource = {'source': LEGAL_ARCHIVE_NAME}
    versioning = True
示例#23
0
class WorkqueueResource(superdesk.Resource):
    endpoint_name = 'workqueue'
    datasource = {'source': 'archive'}
    schema = get_schema()
    item_methods = ['GET']