taskcafe/api/graph/schema.graphqls

300 lines
5.1 KiB
GraphQL
Raw Normal View History

2020-04-10 04:40:22 +02:00
scalar Time
scalar UUID
2020-06-13 00:21:58 +02:00
scalar Upload
2020-04-10 04:40:22 +02:00
2020-04-21 01:04:27 +02:00
type ProjectLabel {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-21 01:04:27 +02:00
createdDate: Time!
2020-05-27 23:18:50 +02:00
labelColor: LabelColor!
2020-04-21 01:04:27 +02:00
name: String
}
2020-05-27 23:18:50 +02:00
type LabelColor {
id: ID!
name: String!
position: Float!
colorHex: String!
}
2020-04-20 05:02:55 +02:00
type TaskLabel {
2020-05-27 02:53:31 +02:00
id: ID!
2020-05-31 06:11:19 +02:00
projectLabel: ProjectLabel!
2020-04-21 01:04:27 +02:00
assignedDate: Time!
2020-04-20 05:02:55 +02:00
}
type ProfileIcon {
url: String
initials: String
2020-04-21 01:04:27 +02:00
bgColor: String
2020-04-20 05:02:55 +02:00
}
type ProjectMember {
2020-05-27 02:53:31 +02:00
id: ID!
2020-06-13 00:21:58 +02:00
fullName: String!
2020-04-20 05:02:55 +02:00
profileIcon: ProfileIcon!
}
2020-04-10 04:40:22 +02:00
type RefreshToken {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-10 04:40:22 +02:00
userId: UUID!
expiresAt: Time!
createdAt: Time!
}
type UserAccount {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-10 04:40:22 +02:00
email: String!
createdAt: Time!
2020-06-13 00:21:58 +02:00
fullName: String!
initials: String!
2020-04-10 04:40:22 +02:00
username: String!
2020-04-20 05:02:55 +02:00
profileIcon: ProfileIcon!
2020-04-10 04:40:22 +02:00
}
type Team {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-10 04:40:22 +02:00
createdAt: Time!
name: String!
}
type Project {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-10 04:40:22 +02:00
createdAt: Time!
name: String!
2020-04-20 05:02:55 +02:00
team: Team!
owner: ProjectMember!
2020-04-10 04:40:22 +02:00
taskGroups: [TaskGroup!]!
2020-04-20 05:02:55 +02:00
members: [ProjectMember!]!
2020-04-21 01:04:27 +02:00
labels: [ProjectLabel!]!
2020-04-10 04:40:22 +02:00
}
type TaskGroup {
2020-05-27 02:53:31 +02:00
id: ID!
2020-04-10 04:40:22 +02:00
projectID: String!
createdAt: Time!
name: String!
position: Float!
tasks: [Task!]!
}
type Task {
2020-05-27 02:53:31 +02:00
id: ID!
taskGroup: TaskGroup!
2020-04-10 04:40:22 +02:00
createdAt: Time!
name: String!
position: Float!
2020-04-20 05:02:55 +02:00
description: String
assigned: [ProjectMember!]!
labels: [TaskLabel!]!
2020-04-10 04:40:22 +02:00
}
input ProjectsFilter {
teamID: String
}
input FindUser {
userId: String!
}
input FindProject {
projectId: String!
}
2020-04-20 05:02:55 +02:00
input FindTask {
taskID: UUID!
}
2020-04-10 04:40:22 +02:00
type Query {
users: [UserAccount!]!
findUser(input: FindUser!): UserAccount!
findProject(input: FindProject!): Project!
2020-04-20 05:02:55 +02:00
findTask(input: FindTask!): Task!
2020-04-10 04:40:22 +02:00
projects(input: ProjectsFilter): [Project!]!
teams: [Team!]!
2020-05-27 23:18:50 +02:00
labelColors: [LabelColor!]!
2020-04-10 04:40:22 +02:00
taskGroups: [TaskGroup!]!
2020-04-20 05:02:55 +02:00
me: UserAccount!
2020-04-10 04:40:22 +02:00
}
input NewRefreshToken {
userId: String!
}
input NewUserAccount {
username: String!
email: String!
2020-06-13 00:21:58 +02:00
fullName: String!
initials: String!
2020-04-10 04:40:22 +02:00
password: String!
}
input NewTeam {
name: String!
organizationID: String!
}
input NewProject {
2020-04-20 05:02:55 +02:00
userID: UUID!
teamID: UUID!
2020-04-10 04:40:22 +02:00
name: String!
}
input NewTaskGroup {
projectID: String!
name: String!
position: Float!
}
input LogoutUser {
userID: String!
}
input NewTask {
taskGroupID: String!
name: String!
position: Float!
}
input NewTaskLocation {
taskID: UUID!
taskGroupID: UUID!
2020-04-10 04:40:22 +02:00
position: Float!
}
input DeleteTaskInput {
taskID: String!
}
type DeleteTaskPayload {
taskID: String!
}
input UpdateTaskName {
taskID: String!
name: String!
}
input NewTaskGroupLocation {
taskGroupID: UUID!
position: Float!
}
2020-04-11 21:24:45 +02:00
input DeleteTaskGroupInput {
taskGroupID: UUID!
}
type DeleteTaskGroupPayload {
ok: Boolean!
affectedRows: Int!
taskGroup: TaskGroup!
}
2020-04-20 05:02:55 +02:00
input AssignTaskInput {
taskID: UUID!
userID: UUID!
}
2020-04-21 01:04:27 +02:00
input UnassignTaskInput {
taskID: UUID!
userID: UUID!
}
2020-04-20 05:02:55 +02:00
input UpdateTaskDescriptionInput {
taskID: UUID!
description: String!
}
input AddTaskLabelInput {
taskID: UUID!
2020-05-31 06:11:19 +02:00
projectLabelID: UUID!
2020-04-20 05:02:55 +02:00
}
input RemoveTaskLabelInput {
taskLabelID: UUID!
}
2020-04-21 01:04:27 +02:00
input NewProjectLabel {
projectID: UUID!
labelColorID: UUID!
name: String
}
input DeleteProjectLabel {
projectLabelID: UUID!
}
input UpdateProjectLabelName {
projectLabelID: UUID!
name: String!
}
input UpdateProjectLabel {
projectLabelID: UUID!
labelColorID: UUID!
name: String!
}
input UpdateProjectLabelColor {
projectLabelID: UUID!
labelColorID: UUID!
}
2020-05-31 06:11:19 +02:00
input ToggleTaskLabelInput {
taskID: UUID!
projectLabelID: UUID!
}
type ToggleTaskLabelPayload {
active: Boolean!
task: Task!
}
input UpdateProjectName {
projectID: UUID!
name: String!
}
type UpdateTaskLocationPayload {
previousTaskGroupID: UUID!
task: Task!
}
2020-06-13 00:21:58 +02:00
input UpdateTaskGroupName {
taskGroupID: UUID!
name: String!
}
2020-04-10 04:40:22 +02:00
type Mutation {
createRefreshToken(input: NewRefreshToken!): RefreshToken!
2020-04-11 21:24:45 +02:00
2020-04-10 04:40:22 +02:00
createUserAccount(input: NewUserAccount!): UserAccount!
2020-04-11 21:24:45 +02:00
2020-04-10 04:40:22 +02:00
createTeam(input: NewTeam!): Team!
2020-06-13 00:21:58 +02:00
clearProfileAvatar: UserAccount!
2020-04-11 21:24:45 +02:00
2020-04-10 04:40:22 +02:00
createProject(input: NewProject!): Project!
2020-05-31 06:11:19 +02:00
updateProjectName(input: UpdateProjectName): Project!
2020-04-21 01:04:27 +02:00
createProjectLabel(input: NewProjectLabel!): ProjectLabel!
deleteProjectLabel(input: DeleteProjectLabel!): ProjectLabel!
updateProjectLabel(input: UpdateProjectLabel!): ProjectLabel!
updateProjectLabelName(input: UpdateProjectLabelName!): ProjectLabel!
updateProjectLabelColor(input: UpdateProjectLabelColor!): ProjectLabel!
2020-04-11 21:24:45 +02:00
2020-04-10 04:40:22 +02:00
createTaskGroup(input: NewTaskGroup!): TaskGroup!
updateTaskGroupLocation(input: NewTaskGroupLocation!): TaskGroup!
2020-06-13 00:21:58 +02:00
updateTaskGroupName(input: UpdateTaskGroupName!): TaskGroup!
2020-04-11 21:24:45 +02:00
deleteTaskGroup(input: DeleteTaskGroupInput!): DeleteTaskGroupPayload!
2020-04-20 05:02:55 +02:00
addTaskLabel(input: AddTaskLabelInput): Task!
removeTaskLabel(input: RemoveTaskLabelInput): Task!
2020-05-31 06:11:19 +02:00
toggleTaskLabel(input: ToggleTaskLabelInput!): ToggleTaskLabelPayload!
2020-04-20 05:02:55 +02:00
2020-04-10 04:40:22 +02:00
createTask(input: NewTask!): Task!
2020-04-20 05:02:55 +02:00
updateTaskDescription(input: UpdateTaskDescriptionInput!): Task!
updateTaskLocation(input: NewTaskLocation!): UpdateTaskLocationPayload!
2020-04-10 04:40:22 +02:00
updateTaskName(input: UpdateTaskName!): Task!
deleteTask(input: DeleteTaskInput!): DeleteTaskPayload!
2020-04-20 05:02:55 +02:00
assignTask(input: AssignTaskInput): Task!
2020-04-21 01:04:27 +02:00
unassignTask(input: UnassignTaskInput): Task!
2020-04-11 21:24:45 +02:00
logoutUser(input: LogoutUser!): Boolean!
2020-04-10 04:40:22 +02:00
}