4277b7b2a8
personal projects are projects that have no team. they can only seen by the project members (one of which is whoever first creates the project).
76 lines
1.1 KiB
GraphQL
76 lines
1.1 KiB
GraphQL
enum RoleLevel {
|
|
ADMIN
|
|
MEMBER
|
|
}
|
|
|
|
enum ActionLevel {
|
|
ORG
|
|
TEAM
|
|
PROJECT
|
|
}
|
|
|
|
enum ObjectType {
|
|
ORG
|
|
TEAM
|
|
PROJECT
|
|
TASK
|
|
TASK_GROUP
|
|
TASK_CHECKLIST
|
|
TASK_CHECKLIST_ITEM
|
|
}
|
|
|
|
directive @hasRole(roles: [RoleLevel!]!, level: ActionLevel!, type: ObjectType!) on FIELD_DEFINITION
|
|
|
|
type Query {
|
|
organizations: [Organization!]!
|
|
users: [UserAccount!]!
|
|
findUser(input: FindUser!): UserAccount!
|
|
findProject(input: FindProject!):
|
|
Project! @hasRole(roles: [ADMIN, MEMBER], level: PROJECT, type: PROJECT)
|
|
findTask(input: FindTask!): Task!
|
|
projects(input: ProjectsFilter): [Project!]!
|
|
findTeam(input: FindTeam!): Team!
|
|
teams: [Team!]!
|
|
labelColors: [LabelColor!]!
|
|
taskGroups: [TaskGroup!]!
|
|
me: MePayload!
|
|
}
|
|
|
|
type Mutation
|
|
|
|
type TeamRole {
|
|
teamID: UUID!
|
|
roleCode: RoleCode!
|
|
}
|
|
|
|
type ProjectRole {
|
|
projectID: UUID!
|
|
roleCode: RoleCode!
|
|
}
|
|
|
|
type MePayload {
|
|
user: UserAccount!
|
|
teamRoles: [TeamRole!]!
|
|
projectRoles: [ProjectRole!]!
|
|
}
|
|
|
|
input ProjectsFilter {
|
|
teamID: UUID
|
|
}
|
|
|
|
input FindUser {
|
|
userID: UUID!
|
|
}
|
|
|
|
input FindProject {
|
|
projectID: UUID!
|
|
}
|
|
|
|
input FindTask {
|
|
taskID: UUID!
|
|
}
|
|
|
|
input FindTeam {
|
|
teamID: UUID!
|
|
}
|