Files
AFFiNE-Mirror/apps/server/src/schema.gql
2023-07-05 06:54:09 +00:00

143 lines
2.2 KiB
GraphQL

# ------------------------------------------------------
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
# ------------------------------------------------------
type UserType {
id: ID!
"""
User name
"""
name: String!
"""
User email
"""
email: String!
"""
User avatar url
"""
avatarUrl: String
"""
User created date
"""
createdAt: DateTime
token: TokenType!
}
"""
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
"""
scalar DateTime
type TokenType {
token: String!
refresh: String!
}
type WorkspaceType {
id: ID!
"""
is Public workspace
"""
public: Boolean!
"""
Workspace created date
"""
createdAt: DateTime!
"""
Permission of current signed in user in workspace
"""
permission: Permission!
"""
member count of workspace
"""
memberCount: Int!
"""
Owner of workspace
"""
owner: UserType!
"""
Members of workspace
"""
members: [UserType!]!
}
"""
User permission in workspace
"""
enum Permission {
Read
Write
Admin
Owner
}
type Query {
"""
Get all accessible workspaces for current user
"""
workspaces: [WorkspaceType!]!
"""
Get workspace by id
"""
workspace(id: String!): WorkspaceType!
"""
Get user by email
"""
user(email: String!): UserType!
}
type Mutation {
register(name: String!, email: String!, password: String!): UserType!
signIn(email: String!, password: String!): UserType!
"""
Create a new workspace
"""
createWorkspace(init: Upload!): WorkspaceType!
"""
Update workspace
"""
updateWorkspace(input: UpdateWorkspaceInput!): WorkspaceType!
deleteWorkspace(id: String!): Boolean!
invite(
workspaceId: String!
email: String!
permission: Permission!
): Boolean!
revoke(workspaceId: String!, userId: String!): Boolean!
acceptInvite(workspaceId: String!): Boolean!
leaveWorkspace(workspaceId: String!): Boolean!
uploadBlob(workspaceId: String!, blob: Upload!): String!
"""
Upload user avatar
"""
uploadAvatar(id: String!, avatar: Upload!): UserType!
}
"""
The `Upload` scalar type represents a file upload.
"""
scalar Upload
input UpdateWorkspaceInput {
"""
is Public workspace
"""
public: Boolean
id: ID!
}