Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/resolvers/resolver_factory.py
Show All 22 Lines | |||||
from .search import ResolveSwhidConnection, SearchConnection | from .search import ResolveSwhidConnection, SearchConnection | ||||
from .snapshot import ( | from .snapshot import ( | ||||
OriginSnapshotConnection, | OriginSnapshotConnection, | ||||
SnapshotNode, | SnapshotNode, | ||||
TargetSnapshotNode, | TargetSnapshotNode, | ||||
VisitSnapshotNode, | VisitSnapshotNode, | ||||
) | ) | ||||
from .snapshot_branch import AliasSnapshotBranchNode, SnapshotBranchConnection | from .snapshot_branch import AliasSnapshotBranchNode, SnapshotBranchConnection | ||||
from .target import TargetNode | |||||
from .visit import LatestVisitNode, OriginVisitConnection, OriginVisitNode | from .visit import LatestVisitNode, OriginVisitConnection, OriginVisitNode | ||||
from .visit_status import LatestVisitStatusNode, VisitStatusConnection | from .visit_status import LatestVisitStatusNode, VisitStatusConnection | ||||
class NodeObjectFactory: | class NodeObjectFactory: | ||||
mapping: ClassVar[Dict[str, Type[BaseNode]]] = { | mapping: ClassVar[Dict[str, Type[BaseNode]]] = { | ||||
"origin": OriginNode, | "origin": OriginNode, | ||||
"visit": OriginVisitNode, | "visit": OriginVisitNode, | ||||
Show All 22 Lines | mapping: ClassVar[Dict[str, Type[BaseNode]]] = { | ||||
"dir-entry-directory": TargetDirectoryNode, | "dir-entry-directory": TargetDirectoryNode, | ||||
"dir-entry-revision": TargetRevisionNode, | "dir-entry-revision": TargetRevisionNode, | ||||
"search-result-origin": TargetOriginNode, | "search-result-origin": TargetOriginNode, | ||||
"search-result-snapshot": TargetSnapshotNode, | "search-result-snapshot": TargetSnapshotNode, | ||||
"search-result-revision": TargetRevisionNode, | "search-result-revision": TargetRevisionNode, | ||||
"search-result-release": TargetReleaseNode, | "search-result-release": TargetReleaseNode, | ||||
"search-result-directory": TargetDirectoryNode, | "search-result-directory": TargetDirectoryNode, | ||||
"search-result-content": TargetContentNode, | "search-result-content": TargetContentNode, | ||||
"target": TargetNode, | |||||
"target-revision": TargetRevisionNode, | |||||
"target-release": TargetReleaseNode, | |||||
"target-snapshot": TargetSnapshotNode, | |||||
"target-directory": TargetDirectoryNode, | |||||
"target-content": TargetContentNode, | |||||
} | } | ||||
@classmethod | @classmethod | ||||
def create(cls, node_type: str, obj, info, *args, **kw): | def create(cls, node_type: str, obj, info, *args, **kw): | ||||
resolver = cls.mapping.get(node_type) | resolver = cls.mapping.get(node_type) | ||||
if not resolver: | if not resolver: | ||||
raise AttributeError(f"Invalid node type: {node_type}") | raise AttributeError(f"Invalid node type: {node_type}") | ||||
try: | try: | ||||
Show All 27 Lines |