Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/resolvers/resolver_factory.py
# Copyright (C) 2022 The Software Heritage developers | # Copyright (C) 2022 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from .content import ContentNode, TargetContentNode | from .content import ContentNode, TargetContentNode | ||||
from .directory import DirectoryNode, RevisionDirectoryNode, TargetDirectoryNode | from .directory import DirectoryNode, RevisionDirectoryNode, TargetDirectoryNode | ||||
from .directory_entry import DirectoryEntryConnection | from .directory_entry import DirectoryEntryConnection | ||||
from .origin import OriginConnection, OriginNode | from .origin import OriginConnection, OriginNode | ||||
from .release import ReleaseNode, TargetReleaseNode | from .release import ReleaseNode, TargetReleaseNode | ||||
from .revision import ( | from .revision import ( | ||||
LogRevisionConnection, | LogRevisionConnection, | ||||
ParentRevisionConnection, | ParentRevisionConnection, | ||||
RevisionNode, | RevisionNode, | ||||
TargetRevisionNode, | TargetRevisionNode, | ||||
) | ) | ||||
from .search import SearchSwhidConnection | |||||
from .snapshot import ( | from .snapshot import ( | ||||
OriginSnapshotConnection, | OriginSnapshotConnection, | ||||
SnapshotNode, | SnapshotNode, | ||||
TargetSnapshotNode, | TargetSnapshotNode, | ||||
VisitSnapshotNode, | VisitSnapshotNode, | ||||
) | ) | ||||
from .snapshot_branch import SnapshotBranchConnection | from .snapshot_branch import SnapshotBranchConnection | ||||
from .visit import LatestVisitNode, OriginVisitConnection, OriginVisitNode | from .visit import LatestVisitNode, OriginVisitConnection, OriginVisitNode | ||||
Show All 20 Lines | mapping = { | ||||
"release-revision": TargetRevisionNode, | "release-revision": TargetRevisionNode, | ||||
"release-release": TargetReleaseNode, | "release-release": TargetReleaseNode, | ||||
"release-directory": TargetDirectoryNode, | "release-directory": TargetDirectoryNode, | ||||
"release-content": TargetContentNode, | "release-content": TargetContentNode, | ||||
"directory": DirectoryNode, | "directory": DirectoryNode, | ||||
"content": ContentNode, | "content": ContentNode, | ||||
"dir-entry-dir": TargetDirectoryNode, | "dir-entry-dir": TargetDirectoryNode, | ||||
"dir-entry-file": TargetContentNode, | "dir-entry-file": TargetContentNode, | ||||
"search-result-snapshot": TargetSnapshotNode, | |||||
"search-result-revision": TargetRevisionNode, | |||||
"search-result-release": TargetReleaseNode, | |||||
"search-result-directory": TargetDirectoryNode, | |||||
"search-result-content": TargetContentNode, | |||||
} | } | ||||
if resolver_type not in mapping: | if resolver_type not in mapping: | ||||
raise AttributeError(f"Invalid node type: {resolver_type}") | raise AttributeError(f"Invalid node type: {resolver_type}") | ||||
return mapping[resolver_type] | return mapping[resolver_type] | ||||
def get_connection_resolver(resolver_type): | def get_connection_resolver(resolver_type): | ||||
# FIXME, replace with a proper factory method | # FIXME, replace with a proper factory method | ||||
mapping = { | mapping = { | ||||
"origins": OriginConnection, | "origins": OriginConnection, | ||||
"origin-visits": OriginVisitConnection, | "origin-visits": OriginVisitConnection, | ||||
"origin-snapshots": OriginSnapshotConnection, | "origin-snapshots": OriginSnapshotConnection, | ||||
"visit-status": VisitStatusConnection, | "visit-status": VisitStatusConnection, | ||||
"snapshot-branches": SnapshotBranchConnection, | "snapshot-branches": SnapshotBranchConnection, | ||||
"revision-parents": ParentRevisionConnection, | "revision-parents": ParentRevisionConnection, | ||||
"revision-log": LogRevisionConnection, | "revision-log": LogRevisionConnection, | ||||
"directory-entries": DirectoryEntryConnection, | "directory-entries": DirectoryEntryConnection, | ||||
"search-swhid": SearchSwhidConnection, | |||||
} | } | ||||
if resolver_type not in mapping: | if resolver_type not in mapping: | ||||
raise AttributeError(f"Invalid connection type: {resolver_type}") | raise AttributeError(f"Invalid connection type: {resolver_type}") | ||||
return mapping[resolver_type] | return mapping[resolver_type] |