Page MenuHomeSoftware Heritage

No OneTemporary

diff --git a/swh/graphql/resolvers/visit_status.py b/swh/graphql/resolvers/visit_status.py
index c1c148b..ac70411 100644
--- a/swh/graphql/resolvers/visit_status.py
+++ b/swh/graphql/resolvers/visit_status.py
@@ -1,37 +1,41 @@
from swh.graphql.backends import archive
from .base_connection import BaseConnection
from .base_node import BaseNode
class BaseVisitStatusNode(BaseNode):
""" """
+ @property
+ def snapshotId(self): # To support the schema naming convention
+ return self._node.snapshot
+
class LatestVisitStatusNode(BaseVisitStatusNode):
"""
Get the latest visit status for a visit
self.obj is the visit object here
self.obj.origin is the origin URL
"""
def _get_node_data(self):
return archive.Archive().get_latest_visit_status(
self.obj.origin, self.obj.visitId
)
class VisitStatusConnection(BaseConnection):
"""
self.obj is the visit object
"""
_node_class = BaseVisitStatusNode
def _get_paged_result(self):
return archive.Archive().get_visit_status(
self.obj.origin,
self.obj.visitId,
after=self._get_after_arg(),
first=self._get_first_arg(),
)
diff --git a/swh/graphql/schema/schema.graphql b/swh/graphql/schema/schema.graphql
index 66d7cb9..08758cb 100644
--- a/swh/graphql/schema/schema.graphql
+++ b/swh/graphql/schema/schema.graphql
@@ -1,340 +1,341 @@
scalar SWHID
scalar Sha1
scalar DateTime
scalar DateTimeZone
scalar BinaryText
interface Node {
id: ID!
}
interface SWHNode {
id: Sha1!
}
type PageInfo {
endCursor: String
hasNextPage: Boolean!
}
type OriginConnection {
edges: [OriginEdge]
nodes: [Origin]
pageInfo: PageInfo!
totalCount: Int
}
type OriginEdge {
cursor: String!
node: Origin
}
type Origin implements SWHNode {
id: Sha1!
url: String!
visits(
first: Int!
after: String
): VisitConnection!
latestVisit: Visit
snapshots(
first: Int!
after: String
): SnapshotConnection
}
type VisitConnection {
edges: [VisitEdge]
nodes: [Visit]
pageInfo: PageInfo!
totalCount: Int
}
type VisitEdge {
cursor: String!
node: Visit
}
type Visit implements Node {
id: ID!
visitId: Int
date: DateTime!
type: String
status(
first: Int
after: String
): VisitStatusConnection
latestStatus: VisitStatus
}
type VisitStatusConnection {
edges: [VisitStatusEdge]
nodes: [VisitStatus]
pageInfo: PageInfo!
totalCount: Int
}
type VisitStatusEdge {
cursor: String!
node: VisitStatus
}
type VisitStatus {
status: String!
date: DateTime!
+ snapshotId: Sha1
snapshot: Snapshot
type: String
}
type SnapshotConnection {
edges: [SnapshotEdge]
nodes: [Snapshot]
pageInfo: PageInfo!
totalCount: Int
}
type SnapshotEdge {
cursor: String!
node: Snapshot
}
type Snapshot implements SWHNode {
id: Sha1!
branches(
first: Int!
after: String
types: [BranchTypes]
nameInclude: String
): BranchConnection
}
type BranchConnection {
edges: [BranchConnectionEdge]
nodes: [Branch]
pageInfo: PageInfo!
totalCount: Int
}
type BranchConnectionEdge {
cursor: String!
node: Branch
}
type Person {
email: BinaryText
name: BinaryText
fullname: BinaryText
}
# FIXME, this can be Content, Directory, Snapshot, or Alias as well
union BranchTarget = Revision | Release
enum BranchTypes {
revision
release
alias
content
directory
snapshot
}
type Branch {
name: BinaryText
type: BranchTypes
targetId: Sha1
target: BranchTarget
}
type RevisionConnection {
edges: [RevisionEdge]
nodes: [Revision]
pageInfo: PageInfo!
totalCount: Int
}
type RevisionEdge {
cursor: String!
node: Revision
}
type Revision implements SWHNode {
id: Sha1!
message: BinaryText
author: Person
committer: Person
date: DateTimeZone
type: String # Revision type: FIXME, change to an enum
directoryId: Sha1
directory: Directory
parentIds: [Sha1]
parents(
first: Int
after: String
): RevisionConnection
revisionLog(
first: Int!
after: String
): RevisionConnection
}
union ReleaseTarget = Release | Revision | Directory | Content
enum ReleaseTargetType {
release
revision
content
directory
}
type Release implements SWHNode {
id: Sha1!
name: BinaryText
message: BinaryText
author: Person
date: DateTimeZone
targetId: Sha1
targetType: ReleaseTargetType
target: ReleaseTarget
}
type DirectoryEntryConnection {
edges: [DirectoryEntryEdge]
nodes: [DirectoryEntry]
pageInfo: PageInfo!
totalCount: Int
}
type DirectoryEntryEdge {
cursor: String!
node: DirectoryEntry
}
union DirectoryEntryTarget = Directory | Content
enum DirectoryEntryType {
dir
file
rev
}
type DirectoryEntry {
name: BinaryText
type: DirectoryEntryType
targetId: Sha1
target: DirectoryEntryTarget
}
type Directory implements SWHNode {
id: Sha1!
entries(
first: Int
after: String
): DirectoryEntryConnection
}
type ContentChecksum { # FIXME, temp types
blake2s256: Sha1
sha1: Sha1
sha1_git: Sha1
sha256: Sha1
}
# type ContentType {
# test: String
# }
# type ContentLanguage {
# test: String
# }
# type ContentLicense {
# test: String
# }
type Content implements SWHNode {
id: Sha1!
swhId: String
checksum: ContentChecksum
# data:
# filetype: ContentType
# language: ContentLanguage
# license: ContentLicense
length: Int
status: String
data: BinaryText
}
type Query {
"""
Get an origin with its url
"""
origin(
url: String!
): Origin
"""
Get a list of origins
matching the given filters
Can also be used to search for an origin
"""
# FIMXE, use Input types to make this cleaner
origins(
first: Int!
after: String
urlPattern: String
): OriginConnection
"""
Get a visit object with its id
and/or origin and visit id
"""
visit(
originUrl: String!
visitId: Int!
): Visit
"""
Get a snapshot with Sha1
"""
snapshot(
Sha1: Sha1!
): Snapshot
"""
Get the revision with the given Sha1
"""
revision(
Sha1: Sha1!
): Revision
"""
Get the release with the given Sha1
"""
release(
Sha1: Sha1!
): Release
"""
Get the directory with the given Sha1
"""
directory(
Sha1: Sha1!
): Directory
"""
Get the content with the given Sha1
"""
content(
Sha1: Sha1!
): Content
# """
# Search with the given swhid
# """
# searchWithSwhid
}

File Metadata

Mime Type
text/x-diff
Expires
Jun 4 2025, 7:51 PM (12 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3297774

Event Timeline