162 lines
2.1 KiB
GraphQL
162 lines
2.1 KiB
GraphQL
scalar Time
|
|
scalar UUID
|
|
scalar Upload
|
|
|
|
enum RoleCode {
|
|
owner
|
|
admin
|
|
member
|
|
observer
|
|
}
|
|
|
|
type Role {
|
|
code: String!
|
|
name: String!
|
|
}
|
|
|
|
type ProfileIcon {
|
|
url: String
|
|
initials: String
|
|
bgColor: String
|
|
}
|
|
|
|
type OwnersList {
|
|
projects: [UUID!]!
|
|
teams: [UUID!]!
|
|
}
|
|
|
|
type OwnedList {
|
|
teams: [Team!]!
|
|
projects: [Project!]!
|
|
}
|
|
|
|
type MemberList {
|
|
teams: [Team!]!
|
|
projects: [Project!]!
|
|
}
|
|
|
|
type Organization {
|
|
id: ID!
|
|
name: String!
|
|
}
|
|
|
|
enum ShareStatus {
|
|
INVITED
|
|
JOINED
|
|
}
|
|
|
|
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
|
|
|
|
directive @requiresUser on FIELD_DEFINITION
|
|
|
|
type Query {
|
|
organizations: [Organization!]!
|
|
users: [UserAccount!]!
|
|
invitedUsers: [InvitedUserAccount!]!
|
|
findUser(input: FindUser!): UserAccount!
|
|
findProject(input: FindProject!):
|
|
Project!
|
|
findTask(input: FindTask!): Task!
|
|
projects(input: ProjectsFilter): [Project!]!
|
|
findTeam(input: FindTeam!): Team!
|
|
teams: [Team!]!
|
|
myTasks(input: MyTasks!): MyTasksPayload!
|
|
labelColors: [LabelColor!]!
|
|
taskGroups: [TaskGroup!]!
|
|
me: MePayload
|
|
}
|
|
|
|
|
|
type Subscription
|
|
type Mutation
|
|
|
|
enum MyTasksStatus {
|
|
ALL
|
|
INCOMPLETE
|
|
COMPLETE_ALL
|
|
COMPLETE_TODAY
|
|
COMPLETE_YESTERDAY
|
|
COMPLETE_ONE_WEEK
|
|
COMPLETE_TWO_WEEK
|
|
COMPLETE_THREE_WEEK
|
|
}
|
|
|
|
enum MyTasksSort {
|
|
NONE
|
|
PROJECT
|
|
DUE_DATE
|
|
}
|
|
|
|
input MyTasks {
|
|
status: MyTasksStatus!
|
|
sort: MyTasksSort!
|
|
}
|
|
|
|
type ProjectTaskMapping {
|
|
projectID: UUID!
|
|
taskID: UUID!
|
|
}
|
|
|
|
type MyTasksPayload {
|
|
tasks: [Task!]!
|
|
projects: [ProjectTaskMapping!]!
|
|
}
|
|
|
|
type TeamRole {
|
|
teamID: UUID!
|
|
roleCode: RoleCode!
|
|
}
|
|
|
|
type ProjectRole {
|
|
projectID: UUID!
|
|
roleCode: RoleCode!
|
|
}
|
|
|
|
type MePayload {
|
|
user: UserAccount!
|
|
organization: RoleCode
|
|
teamRoles: [TeamRole!]!
|
|
projectRoles: [ProjectRole!]!
|
|
}
|
|
|
|
input ProjectsFilter {
|
|
teamID: UUID
|
|
}
|
|
|
|
input FindUser {
|
|
userID: UUID!
|
|
}
|
|
|
|
input FindProject {
|
|
projectID: UUID!
|
|
}
|
|
|
|
input FindTask {
|
|
taskID: UUID!
|
|
}
|
|
|
|
input FindTeam {
|
|
teamID: UUID!
|
|
}
|