コード例 #1
0
ファイル: proxy.py プロジェクト: bmg1919/superdesk-core
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
ファイル: generate.py プロジェクト: bmg1919/superdesk-core
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
ファイル: generate.py プロジェクト: superdesk/superdesk-core
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
ファイル: proxy.py プロジェクト: aap-gwilliams/superdesk-core
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
ファイル: resource.py プロジェクト: bmg1919/superdesk-core
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
ファイル: resource.py プロジェクト: superdesk/superdesk-core
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
ファイル: resource.py プロジェクト: bmg1919/superdesk-core
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'}
コード例 #14
0
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
ファイル: resource.py プロジェクト: superdesk/superdesk-core
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,
            ),
        }
    )
コード例 #16
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"}
コード例 #17
0
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
ファイル: resource.py プロジェクト: bmg1919/superdesk-core
class LegalResource(Resource):
    resource_methods = ['GET']
    item_methods = ['GET']
    privileges = {'GET': LEGAL_ARCHIVE_NAME}
    mongo_prefix = 'LEGAL_ARCHIVE'
    schema = get_schema()
コード例 #19
0
ファイル: resource.py プロジェクト: superdesk/superdesk-core
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
ファイル: resource.py プロジェクト: superdesk/superdesk-core
class LegalResource(Resource):
    resource_methods = ["GET"]
    item_methods = ["GET"]
    privileges = {"GET": LEGAL_ARCHIVE_NAME}
    mongo_prefix = "LEGAL_ARCHIVE"
    schema = get_schema()
コード例 #21
0
ファイル: item.py プロジェクト: superdesk/superdesk-core
 def __init__(self, data_layer):
     BaseModel.__init__(self, "archive", data_layer,
                        get_schema(versioning=True), ItemValidator())
コード例 #22
0
ファイル: resource.py プロジェクト: bmg1919/superdesk-core
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
ファイル: workqueue.py プロジェクト: bmg1919/superdesk-core
class WorkqueueResource(superdesk.Resource):
    endpoint_name = 'workqueue'
    datasource = {'source': 'archive'}
    schema = get_schema()
    item_methods = ['GET']