Files
speckle-server/modules/core/graph/schemas/branchesAndCommits.graphql
T
2020-08-21 13:46:28 +01:00

156 lines
3.4 KiB
GraphQL

extend type Stream {
commits( limit: Int! = 25, cursor: String ): CommitCollection
commit( id: String! ): Commit
branches( limit: Int! = 25, cursor: String ): BranchCollection
branch( name: String! ): Branch
}
extend type User {
commits( limit: Int! = 25, cursor: String ): CommitCollectionUser
}
type Branch {
id: String!
name: String!
author: User!
description: String!
commits( limit: Int! = 25, cursor: String ): CommitCollection
}
type Commit {
id: String!
referencedObject: String!
realObject: Object
message: String
authorName: String
authorId: String
createdAt: String
}
type CommitCollectionUserNode {
id: String!
referencedObject: String!
realObject: Object
message: String
streamId: String
streamName: String
}
type BranchCollection {
totalCount: Int!
cursor: String
items: [Branch]
}
type CommitCollection {
totalCount: Int!
cursor: String
items: [Commit]
}
type CommitCollectionUser {
totalCount: Int!
cursor: String
items: [CommitCollectionUserNode]
}
extend type Mutation {
branchCreate( branch: BranchCreateInput! ): String!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
branchUpdate( branch: BranchUpdateInput! ): Boolean!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
branchDelete( branch: BranchDeleteInput! ): Boolean!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
commitCreate( commit: CommitCreateInput! ): String!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
commitUpdate( commit: CommitUpdateInput! ): Boolean!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
commitDelete( commit: CommitDeleteInput! ): Boolean!
@hasRole(role: "server:user")
@hasScope(scope: "streams:write")
}
extend type Subscription {
# TODO: auth for these subscriptions
"""
Subscribe to branch created event
"""
branchCreated( streamId: String! ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
"""
Subscribe to branch updated event.
"""
branchUpdated( streamId: String!, branchId: String ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
"""
Subscribe to branch deleted event
"""
branchDeleted( streamId: String! ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
"""
Subscribe to commit created event
"""
commitCreated( streamId: String! ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
"""
Subscribe to commit updated event.
"""
commitUpdated( streamId: String!, commitId: String ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
"""
Subscribe to commit deleted event
"""
commitDeleted( streamId: String! ): JSONObject
@hasRole(role: "server:user")
@hasScope(scope: "streams:read")
}
input BranchCreateInput {
streamId: String!
name: String!
description: String
}
input BranchUpdateInput {
streamId: String!
id: String!
name: String
description: String
}
input BranchDeleteInput {
streamId: String!
id: String!
}
input CommitCreateInput {
streamId: String!
branchName: String!
objectId: String!
message: String
previousCommitIds: [String]
}
input CommitUpdateInput {
streamId: String!
id: String!
message: String!
}
input CommitDeleteInput {
streamId: String!
id: String!
}