graph

package
v0.0.0-...-998db2a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2022 License: MIT Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TASK_ADDED_TO_TASK_GROUP int32 = 1
	TASK_MOVED_TO_TASK_GROUP int32 = 2
	TASK_MARK_COMPLETE       int32 = 3
	TASK_MARK_INCOMPLETE     int32 = 4
	TASK_DUE_DATE_CHANGED    int32 = 5
	TASK_DUE_DATE_ADDED      int32 = 6
	TASK_DUE_DATE_REMOVED    int32 = 7
	TASK_CHECKLIST_CHANGED   int32 = 8
	TASK_CHECKLIST_ADDED     int32 = 9
	TASK_CHECKLIST_REMOVED   int32 = 10
)

Variables

Functions

func CompareRoleLevel

func CompareRoleLevel(a string, b RoleLevel) bool

CompareRoleLevel compares a string against a role level

func GetProjectRoles

func GetProjectRoles(ctx context.Context, r db.Repository, projectID uuid.UUID) (db.GetUserRolesForProjectRow, error)

GetProjectRoles retrieves the team & project role for the given project ID

func GetUser

func GetUser(ctx context.Context) (uuid.UUID, bool)

GetUser retrieves both the user id & user role out of a context

func GetUserID

func GetUserID(ctx context.Context) (uuid.UUID, bool)

GetUserID retrieves the UserID out of a context

func IsProjectPublic

func IsProjectPublic(ctx context.Context, repo db.Repository, projectID uuid.UUID) (bool, error)

func MarshalUUID

func MarshalUUID(uuid uuid.UUID) graphql.Marshaler

MarshalUUID converts a UUID to JSON string

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

func NewHandler

func NewHandler(repo db.Repository, appConfig config.AppConfig, jobQueue jobs.JobQueue, redisClient *redis.Client) http.Handler

NewHandler returns a new graphql endpoint handler.

func NewPlaygroundHandler

func NewPlaygroundHandler(endpoint string) http.Handler

NewPlaygroundHandler returns a new GraphQL Playground handler.

func NotAuthorized

func NotAuthorized() error

func UnmarshalUUID

func UnmarshalUUID(v interface{}) (uuid.UUID, error)

UnmarshalUUID converts a String to a UUID

Types

type ActionLevel

type ActionLevel string
const (
	ActionLevelOrg     ActionLevel = "ORG"
	ActionLevelTeam    ActionLevel = "TEAM"
	ActionLevelProject ActionLevel = "PROJECT"
)

func (ActionLevel) IsValid

func (e ActionLevel) IsValid() bool

func (ActionLevel) MarshalGQL

func (e ActionLevel) MarshalGQL(w io.Writer)

func (ActionLevel) String

func (e ActionLevel) String() string

func (*ActionLevel) UnmarshalGQL

func (e *ActionLevel) UnmarshalGQL(v interface{}) error

type ActionType

type ActionType string
const (
	ActionTypeTeamAdded              ActionType = "TEAM_ADDED"
	ActionTypeTeamRemoved            ActionType = "TEAM_REMOVED"
	ActionTypeProjectAdded           ActionType = "PROJECT_ADDED"
	ActionTypeProjectRemoved         ActionType = "PROJECT_REMOVED"
	ActionTypeProjectArchived        ActionType = "PROJECT_ARCHIVED"
	ActionTypeDueDateAdded           ActionType = "DUE_DATE_ADDED"
	ActionTypeDueDateRemoved         ActionType = "DUE_DATE_REMOVED"
	ActionTypeDueDateChanged         ActionType = "DUE_DATE_CHANGED"
	ActionTypeDueDateReminder        ActionType = "DUE_DATE_REMINDER"
	ActionTypeTaskAssigned           ActionType = "TASK_ASSIGNED"
	ActionTypeTaskMoved              ActionType = "TASK_MOVED"
	ActionTypeTaskArchived           ActionType = "TASK_ARCHIVED"
	ActionTypeTaskAttachmentUploaded ActionType = "TASK_ATTACHMENT_UPLOADED"
	ActionTypeCommentMentioned       ActionType = "COMMENT_MENTIONED"
	ActionTypeCommentOther           ActionType = "COMMENT_OTHER"
)

func (ActionType) IsValid

func (e ActionType) IsValid() bool

func (ActionType) MarshalGQL

func (e ActionType) MarshalGQL(w io.Writer)

func (ActionType) String

func (e ActionType) String() string

func (*ActionType) UnmarshalGQL

func (e *ActionType) UnmarshalGQL(v interface{}) error

type ActivityData

type ActivityData struct {
	Data map[string]string
}

type ActivityType

type ActivityType string
const (
	ActivityTypeTaskAdded            ActivityType = "TASK_ADDED"
	ActivityTypeTaskMoved            ActivityType = "TASK_MOVED"
	ActivityTypeTaskMarkedComplete   ActivityType = "TASK_MARKED_COMPLETE"
	ActivityTypeTaskMarkedIncomplete ActivityType = "TASK_MARKED_INCOMPLETE"
	ActivityTypeTaskDueDateChanged   ActivityType = "TASK_DUE_DATE_CHANGED"
	ActivityTypeTaskDueDateAdded     ActivityType = "TASK_DUE_DATE_ADDED"
	ActivityTypeTaskDueDateRemoved   ActivityType = "TASK_DUE_DATE_REMOVED"
	ActivityTypeTaskChecklistChanged ActivityType = "TASK_CHECKLIST_CHANGED"
	ActivityTypeTaskChecklistAdded   ActivityType = "TASK_CHECKLIST_ADDED"
	ActivityTypeTaskChecklistRemoved ActivityType = "TASK_CHECKLIST_REMOVED"
)

func (ActivityType) IsValid

func (e ActivityType) IsValid() bool

func (ActivityType) MarshalGQL

func (e ActivityType) MarshalGQL(w io.Writer)

func (ActivityType) String

func (e ActivityType) String() string

func (*ActivityType) UnmarshalGQL

func (e *ActivityType) UnmarshalGQL(v interface{}) error

type AddTaskLabelInput

type AddTaskLabelInput struct {
	TaskID         uuid.UUID `json:"taskID"`
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
}

type AssignTaskInput

type AssignTaskInput struct {
	TaskID uuid.UUID `json:"taskID"`
	UserID uuid.UUID `json:"userID"`
}

type CausedBy

type CausedBy struct {
	ID          uuid.UUID    `json:"id"`
	FullName    string       `json:"fullName"`
	ProfileIcon *ProfileIcon `json:"profileIcon"`
}

type ChecklistBadge

type ChecklistBadge struct {
	Complete int `json:"complete"`
	Total    int `json:"total"`
}

type CommentsBadge

type CommentsBadge struct {
	Total  int  `json:"total"`
	Unread bool `json:"unread"`
}

type ComplexityRoot

type ComplexityRoot struct {
	CausedBy struct {
		FullName    func(childComplexity int) int
		ID          func(childComplexity int) int
		ProfileIcon func(childComplexity int) int
	}

	ChecklistBadge struct {
		Complete func(childComplexity int) int
		Total    func(childComplexity int) int
	}

	CommentsBadge struct {
		Total  func(childComplexity int) int
		Unread func(childComplexity int) int
	}

	CreateTaskCommentPayload struct {
		Comment func(childComplexity int) int
		TaskID  func(childComplexity int) int
	}

	CreateTaskDueDateNotificationsResult struct {
		Notifications func(childComplexity int) int
	}

	CreateTeamMemberPayload struct {
		Team       func(childComplexity int) int
		TeamMember func(childComplexity int) int
	}

	CreatedBy struct {
		FullName    func(childComplexity int) int
		ID          func(childComplexity int) int
		ProfileIcon func(childComplexity int) int
	}

	DeleteInvitedProjectMemberPayload struct {
		InvitedMember func(childComplexity int) int
	}

	DeleteInvitedUserAccountPayload struct {
		InvitedUser func(childComplexity int) int
	}

	DeleteProjectMemberPayload struct {
		Member    func(childComplexity int) int
		Ok        func(childComplexity int) int
		ProjectID func(childComplexity int) int
	}

	DeleteProjectPayload struct {
		Ok      func(childComplexity int) int
		Project func(childComplexity int) int
	}

	DeleteTaskChecklistItemPayload struct {
		Ok                func(childComplexity int) int
		TaskChecklistItem func(childComplexity int) int
	}

	DeleteTaskChecklistPayload struct {
		Ok            func(childComplexity int) int
		TaskChecklist func(childComplexity int) int
	}

	DeleteTaskCommentPayload struct {
		CommentID func(childComplexity int) int
		TaskID    func(childComplexity int) int
	}

	DeleteTaskDueDateNotificationsResult struct {
		Notifications func(childComplexity int) int
	}

	DeleteTaskGroupPayload struct {
		AffectedRows func(childComplexity int) int
		Ok           func(childComplexity int) int
		TaskGroup    func(childComplexity int) int
	}

	DeleteTaskGroupTasksPayload struct {
		TaskGroupID func(childComplexity int) int
		Tasks       func(childComplexity int) int
	}

	DeleteTaskPayload struct {
		TaskID func(childComplexity int) int
	}

	DeleteTeamMemberPayload struct {
		AffectedProjects func(childComplexity int) int
		TeamID           func(childComplexity int) int
		UserID           func(childComplexity int) int
	}

	DeleteTeamPayload struct {
		Ok       func(childComplexity int) int
		Projects func(childComplexity int) int
		Team     func(childComplexity int) int
	}

	DeleteUserAccountPayload struct {
		Ok          func(childComplexity int) int
		UserAccount func(childComplexity int) int
	}

	DueDate struct {
		At            func(childComplexity int) int
		Notifications func(childComplexity int) int
	}

	DueDateNotification struct {
		Duration func(childComplexity int) int
		ID       func(childComplexity int) int
		Period   func(childComplexity int) int
	}

	DuplicateTaskGroupPayload struct {
		TaskGroup func(childComplexity int) int
	}

	HasUnreadNotificationsResult struct {
		Unread func(childComplexity int) int
	}

	InviteProjectMembersPayload struct {
		InvitedMembers func(childComplexity int) int
		Members        func(childComplexity int) int
		Ok             func(childComplexity int) int
		ProjectID      func(childComplexity int) int
	}

	InvitedMember struct {
		Email     func(childComplexity int) int
		InvitedOn func(childComplexity int) int
	}

	InvitedUserAccount struct {
		Email     func(childComplexity int) int
		ID        func(childComplexity int) int
		InvitedOn func(childComplexity int) int
		Member    func(childComplexity int) int
	}

	LabelColor struct {
		ColorHex func(childComplexity int) int
		ID       func(childComplexity int) int
		Name     func(childComplexity int) int
		Position func(childComplexity int) int
	}

	MePayload struct {
		Organization func(childComplexity int) int
		ProjectRoles func(childComplexity int) int
		TeamRoles    func(childComplexity int) int
		User         func(childComplexity int) int
	}

	Member struct {
		FullName    func(childComplexity int) int
		ID          func(childComplexity int) int
		Member      func(childComplexity int) int
		Owned       func(childComplexity int) int
		ProfileIcon func(childComplexity int) int
		Role        func(childComplexity int) int
		Username    func(childComplexity int) int
	}

	MemberList struct {
		Projects func(childComplexity int) int
		Teams    func(childComplexity int) int
	}

	MemberSearchResult struct {
		ID         func(childComplexity int) int
		Similarity func(childComplexity int) int
		Status     func(childComplexity int) int
		User       func(childComplexity int) int
	}

	Mutation struct {
		AddTaskLabel                    func(childComplexity int, input *AddTaskLabelInput) int
		AssignTask                      func(childComplexity int, input *AssignTaskInput) int
		ClearProfileAvatar              func(childComplexity int) int
		CreateProject                   func(childComplexity int, input NewProject) int
		CreateProjectLabel              func(childComplexity int, input NewProjectLabel) int
		CreateTask                      func(childComplexity int, input NewTask) int
		CreateTaskChecklist             func(childComplexity int, input CreateTaskChecklist) int
		CreateTaskChecklistItem         func(childComplexity int, input CreateTaskChecklistItem) int
		CreateTaskComment               func(childComplexity int, input *CreateTaskComment) int
		CreateTaskDueDateNotifications  func(childComplexity int, input []CreateTaskDueDateNotification) int
		CreateTaskGroup                 func(childComplexity int, input NewTaskGroup) int
		CreateTeam                      func(childComplexity int, input NewTeam) int
		CreateTeamMember                func(childComplexity int, input CreateTeamMember) int
		CreateUserAccount               func(childComplexity int, input NewUserAccount) int
		DeleteInvitedProjectMember      func(childComplexity int, input DeleteInvitedProjectMember) int
		DeleteInvitedUserAccount        func(childComplexity int, input DeleteInvitedUserAccount) int
		DeleteProject                   func(childComplexity int, input DeleteProject) int
		DeleteProjectLabel              func(childComplexity int, input DeleteProjectLabel) int
		DeleteProjectMember             func(childComplexity int, input DeleteProjectMember) int
		DeleteTask                      func(childComplexity int, input DeleteTaskInput) int
		DeleteTaskChecklist             func(childComplexity int, input DeleteTaskChecklist) int
		DeleteTaskChecklistItem         func(childComplexity int, input DeleteTaskChecklistItem) int
		DeleteTaskComment               func(childComplexity int, input *DeleteTaskComment) int
		DeleteTaskDueDateNotifications  func(childComplexity int, input []DeleteTaskDueDateNotification) int
		DeleteTaskGroup                 func(childComplexity int, input DeleteTaskGroupInput) int
		DeleteTaskGroupTasks            func(childComplexity int, input DeleteTaskGroupTasks) int
		DeleteTeam                      func(childComplexity int, input DeleteTeam) int
		DeleteTeamMember                func(childComplexity int, input DeleteTeamMember) int
		DeleteUserAccount               func(childComplexity int, input DeleteUserAccount) int
		DuplicateTaskGroup              func(childComplexity int, input DuplicateTaskGroup) int
		InviteProjectMembers            func(childComplexity int, input InviteProjectMembers) int
		LogoutUser                      func(childComplexity int, input LogoutUser) int
		NotificationMarkAllRead         func(childComplexity int) int
		NotificationToggleRead          func(childComplexity int, input NotificationToggleReadInput) int
		RemoveTaskLabel                 func(childComplexity int, input *RemoveTaskLabelInput) int
		SetTaskChecklistItemComplete    func(childComplexity int, input SetTaskChecklistItemComplete) int
		SetTaskComplete                 func(childComplexity int, input SetTaskComplete) int
		SortTaskGroup                   func(childComplexity int, input SortTaskGroup) int
		ToggleProjectVisibility         func(childComplexity int, input ToggleProjectVisibility) int
		ToggleTaskLabel                 func(childComplexity int, input ToggleTaskLabelInput) int
		ToggleTaskWatch                 func(childComplexity int, input ToggleTaskWatch) int
		UnassignTask                    func(childComplexity int, input *UnassignTaskInput) int
		UpdateProjectLabel              func(childComplexity int, input UpdateProjectLabel) int
		UpdateProjectLabelColor         func(childComplexity int, input UpdateProjectLabelColor) int
		UpdateProjectLabelName          func(childComplexity int, input UpdateProjectLabelName) int
		UpdateProjectMemberRole         func(childComplexity int, input UpdateProjectMemberRole) int
		UpdateProjectName               func(childComplexity int, input *UpdateProjectName) int
		UpdateTaskChecklistItemLocation func(childComplexity int, input UpdateTaskChecklistItemLocation) int
		UpdateTaskChecklistItemName     func(childComplexity int, input UpdateTaskChecklistItemName) int
		UpdateTaskChecklistLocation     func(childComplexity int, input UpdateTaskChecklistLocation) int
		UpdateTaskChecklistName         func(childComplexity int, input UpdateTaskChecklistName) int
		UpdateTaskComment               func(childComplexity int, input *UpdateTaskComment) int
		UpdateTaskDescription           func(childComplexity int, input UpdateTaskDescriptionInput) int
		UpdateTaskDueDate               func(childComplexity int, input UpdateTaskDueDate) int
		UpdateTaskDueDateNotifications  func(childComplexity int, input []UpdateTaskDueDateNotification) int
		UpdateTaskGroupLocation         func(childComplexity int, input NewTaskGroupLocation) int
		UpdateTaskGroupName             func(childComplexity int, input UpdateTaskGroupName) int
		UpdateTaskLocation              func(childComplexity int, input NewTaskLocation) int
		UpdateTaskName                  func(childComplexity int, input UpdateTaskName) int
		UpdateTeamMemberRole            func(childComplexity int, input UpdateTeamMemberRole) int
		UpdateUserInfo                  func(childComplexity int, input UpdateUserInfo) int
		UpdateUserPassword              func(childComplexity int, input UpdateUserPassword) int
		UpdateUserRole                  func(childComplexity int, input UpdateUserRole) int
	}

	MyTasksPayload struct {
		Projects func(childComplexity int) int
		Tasks    func(childComplexity int) int
	}

	Notification struct {
		ActionType func(childComplexity int) int
		CausedBy   func(childComplexity int) int
		CreatedAt  func(childComplexity int) int
		Data       func(childComplexity int) int
		ID         func(childComplexity int) int
	}

	NotificationCausedBy struct {
		Fullname func(childComplexity int) int
		ID       func(childComplexity int) int
		Username func(childComplexity int) int
	}

	NotificationData struct {
		Key   func(childComplexity int) int
		Value func(childComplexity int) int
	}

	NotificationMarkAllAsReadResult struct {
		Success func(childComplexity int) int
	}

	Notified struct {
		ID           func(childComplexity int) int
		Notification func(childComplexity int) int
		Read         func(childComplexity int) int
		ReadAt       func(childComplexity int) int
	}

	NotifiedResult struct {
		Notified   func(childComplexity int) int
		PageInfo   func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	Organization struct {
		ID   func(childComplexity int) int
		Name func(childComplexity int) int
	}

	OwnedList struct {
		Projects func(childComplexity int) int
		Teams    func(childComplexity int) int
	}

	OwnersList struct {
		Projects func(childComplexity int) int
		Teams    func(childComplexity int) int
	}

	PageInfo struct {
		EndCursor   func(childComplexity int) int
		HasNextPage func(childComplexity int) int
	}

	ProfileIcon struct {
		BgColor  func(childComplexity int) int
		Initials func(childComplexity int) int
		URL      func(childComplexity int) int
	}

	Project struct {
		CreatedAt      func(childComplexity int) int
		ID             func(childComplexity int) int
		InvitedMembers func(childComplexity int) int
		Labels         func(childComplexity int) int
		Members        func(childComplexity int) int
		Name           func(childComplexity int) int
		Permission     func(childComplexity int) int
		PublicOn       func(childComplexity int) int
		ShortID        func(childComplexity int) int
		TaskGroups     func(childComplexity int) int
		Team           func(childComplexity int) int
	}

	ProjectLabel struct {
		CreatedDate func(childComplexity int) int
		ID          func(childComplexity int) int
		LabelColor  func(childComplexity int) int
		Name        func(childComplexity int) int
	}

	ProjectPermission struct {
		Org     func(childComplexity int) int
		Project func(childComplexity int) int
		Team    func(childComplexity int) int
	}

	ProjectRole struct {
		ProjectID func(childComplexity int) int
		RoleCode  func(childComplexity int) int
	}

	ProjectTaskMapping struct {
		ProjectID func(childComplexity int) int
		TaskID    func(childComplexity int) int
	}

	Query struct {
		FindProject            func(childComplexity int, input FindProject) int
		FindTask               func(childComplexity int, input FindTask) int
		FindTeam               func(childComplexity int, input FindTeam) int
		FindUser               func(childComplexity int, input FindUser) int
		HasUnreadNotifications func(childComplexity int) int
		InvitedUsers           func(childComplexity int) int
		LabelColors            func(childComplexity int) int
		Me                     func(childComplexity int) int
		MyTasks                func(childComplexity int, input MyTasks) int
		Notifications          func(childComplexity int) int
		Notified               func(childComplexity int, input NotifiedInput) int
		Organizations          func(childComplexity int) int
		Projects               func(childComplexity int, input *ProjectsFilter) int
		SearchMembers          func(childComplexity int, input MemberSearchFilter) int
		TaskGroups             func(childComplexity int) int
		Teams                  func(childComplexity int) int
		Users                  func(childComplexity int) int
	}

	Role struct {
		Code func(childComplexity int) int
		Name func(childComplexity int) int
	}

	SortTaskGroupPayload struct {
		TaskGroupID func(childComplexity int) int
		Tasks       func(childComplexity int) int
	}

	Subscription struct {
		NotificationAdded func(childComplexity int) int
	}

	Task struct {
		Activity    func(childComplexity int) int
		Assigned    func(childComplexity int) int
		Badges      func(childComplexity int) int
		Checklists  func(childComplexity int) int
		Comments    func(childComplexity int) int
		Complete    func(childComplexity int) int
		CompletedAt func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		Description func(childComplexity int) int
		DueDate     func(childComplexity int) int
		HasTime     func(childComplexity int) int
		ID          func(childComplexity int) int
		Labels      func(childComplexity int) int
		Name        func(childComplexity int) int
		Position    func(childComplexity int) int
		ShortID     func(childComplexity int) int
		TaskGroup   func(childComplexity int) int
		Watched     func(childComplexity int) int
	}

	TaskActivity struct {
		CausedBy  func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		Data      func(childComplexity int) int
		ID        func(childComplexity int) int
		Type      func(childComplexity int) int
	}

	TaskActivityData struct {
		Name  func(childComplexity int) int
		Value func(childComplexity int) int
	}

	TaskBadges struct {
		Checklist func(childComplexity int) int
		Comments  func(childComplexity int) int
	}

	TaskChecklist struct {
		ID       func(childComplexity int) int
		Items    func(childComplexity int) int
		Name     func(childComplexity int) int
		Position func(childComplexity int) int
	}

	TaskChecklistItem struct {
		Complete        func(childComplexity int) int
		DueDate         func(childComplexity int) int
		ID              func(childComplexity int) int
		Name            func(childComplexity int) int
		Position        func(childComplexity int) int
		TaskChecklistID func(childComplexity int) int
	}

	TaskComment struct {
		CreatedAt func(childComplexity int) int
		CreatedBy func(childComplexity int) int
		ID        func(childComplexity int) int
		Message   func(childComplexity int) int
		Pinned    func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
	}

	TaskGroup struct {
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		Name      func(childComplexity int) int
		Position  func(childComplexity int) int
		ProjectID func(childComplexity int) int
		Tasks     func(childComplexity int) int
	}

	TaskLabel struct {
		AssignedDate func(childComplexity int) int
		ID           func(childComplexity int) int
		ProjectLabel func(childComplexity int) int
	}

	Team struct {
		CreatedAt  func(childComplexity int) int
		ID         func(childComplexity int) int
		Members    func(childComplexity int) int
		Name       func(childComplexity int) int
		Permission func(childComplexity int) int
	}

	TeamPermission struct {
		Org  func(childComplexity int) int
		Team func(childComplexity int) int
	}

	TeamRole struct {
		RoleCode func(childComplexity int) int
		TeamID   func(childComplexity int) int
	}

	ToggleProjectVisibilityPayload struct {
		Project func(childComplexity int) int
	}

	ToggleTaskLabelPayload struct {
		Active func(childComplexity int) int
		Task   func(childComplexity int) int
	}

	UpdateProjectMemberRolePayload struct {
		Member func(childComplexity int) int
		Ok     func(childComplexity int) int
	}

	UpdateTaskChecklistItemLocationPayload struct {
		ChecklistItem   func(childComplexity int) int
		PrevChecklistID func(childComplexity int) int
		TaskChecklistID func(childComplexity int) int
	}

	UpdateTaskChecklistLocationPayload struct {
		Checklist func(childComplexity int) int
	}

	UpdateTaskCommentPayload struct {
		Comment func(childComplexity int) int
		TaskID  func(childComplexity int) int
	}

	UpdateTaskDueDateNotificationsResult struct {
		Notifications func(childComplexity int) int
	}

	UpdateTaskLocationPayload struct {
		PreviousTaskGroupID func(childComplexity int) int
		Task                func(childComplexity int) int
	}

	UpdateTeamMemberRolePayload struct {
		Member func(childComplexity int) int
		Ok     func(childComplexity int) int
		TeamID func(childComplexity int) int
	}

	UpdateUserInfoPayload struct {
		User func(childComplexity int) int
	}

	UpdateUserPasswordPayload struct {
		Ok   func(childComplexity int) int
		User func(childComplexity int) int
	}

	UpdateUserRolePayload struct {
		User func(childComplexity int) int
	}

	UserAccount struct {
		Bio         func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		Email       func(childComplexity int) int
		FullName    func(childComplexity int) int
		ID          func(childComplexity int) int
		Initials    func(childComplexity int) int
		Member      func(childComplexity int) int
		Owned       func(childComplexity int) int
		ProfileIcon func(childComplexity int) int
		Role        func(childComplexity int) int
		Username    func(childComplexity int) int
	}
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type CreateNotificationParams

type CreateNotificationParams struct {
	NotifiedList []uuid.UUID
	ActionType   ActionType
	CausedBy     uuid.UUID
	Data         map[string]string
}

type CreateTaskChecklist

type CreateTaskChecklist struct {
	TaskID   uuid.UUID `json:"taskID"`
	Name     string    `json:"name"`
	Position float64   `json:"position"`
}

type CreateTaskChecklistItem

type CreateTaskChecklistItem struct {
	TaskChecklistID uuid.UUID `json:"taskChecklistID"`
	Name            string    `json:"name"`
	Position        float64   `json:"position"`
}

type CreateTaskComment

type CreateTaskComment struct {
	TaskID  uuid.UUID `json:"taskID"`
	Message string    `json:"message"`
}

type CreateTaskCommentPayload

type CreateTaskCommentPayload struct {
	TaskID  uuid.UUID       `json:"taskID"`
	Comment *db.TaskComment `json:"comment"`
}

type CreateTaskDueDateNotification

type CreateTaskDueDateNotification struct {
	TaskID   uuid.UUID                   `json:"taskID"`
	Period   int                         `json:"period"`
	Duration DueDateNotificationDuration `json:"duration"`
}

type CreateTaskDueDateNotificationsResult

type CreateTaskDueDateNotificationsResult struct {
	Notifications []DueDateNotification `json:"notifications"`
}

type CreateTeamMember

type CreateTeamMember struct {
	UserID uuid.UUID `json:"userID"`
	TeamID uuid.UUID `json:"teamID"`
}

type CreateTeamMemberPayload

type CreateTeamMemberPayload struct {
	Team       *db.Team `json:"team"`
	TeamMember *Member  `json:"teamMember"`
}

type CreatedBy

type CreatedBy struct {
	ID          uuid.UUID    `json:"id"`
	FullName    string       `json:"fullName"`
	ProfileIcon *ProfileIcon `json:"profileIcon"`
}

type DeleteInvitedProjectMember

type DeleteInvitedProjectMember struct {
	ProjectID uuid.UUID `json:"projectID"`
	Email     string    `json:"email"`
}

type DeleteInvitedProjectMemberPayload

type DeleteInvitedProjectMemberPayload struct {
	InvitedMember *InvitedMember `json:"invitedMember"`
}

type DeleteInvitedUserAccount

type DeleteInvitedUserAccount struct {
	InvitedUserID uuid.UUID `json:"invitedUserID"`
}

type DeleteInvitedUserAccountPayload

type DeleteInvitedUserAccountPayload struct {
	InvitedUser *InvitedUserAccount `json:"invitedUser"`
}

type DeleteProject

type DeleteProject struct {
	ProjectID uuid.UUID `json:"projectID"`
}

type DeleteProjectLabel

type DeleteProjectLabel struct {
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
}

type DeleteProjectMember

type DeleteProjectMember struct {
	ProjectID uuid.UUID `json:"projectID"`
	UserID    uuid.UUID `json:"userID"`
}

type DeleteProjectMemberPayload

type DeleteProjectMemberPayload struct {
	Ok        bool      `json:"ok"`
	Member    *Member   `json:"member"`
	ProjectID uuid.UUID `json:"projectID"`
}

type DeleteProjectPayload

type DeleteProjectPayload struct {
	Ok      bool        `json:"ok"`
	Project *db.Project `json:"project"`
}

type DeleteTaskChecklist

type DeleteTaskChecklist struct {
	TaskChecklistID uuid.UUID `json:"taskChecklistID"`
}

type DeleteTaskChecklistItem

type DeleteTaskChecklistItem struct {
	TaskChecklistItemID uuid.UUID `json:"taskChecklistItemID"`
}

type DeleteTaskChecklistItemPayload

type DeleteTaskChecklistItemPayload struct {
	Ok                bool                  `json:"ok"`
	TaskChecklistItem *db.TaskChecklistItem `json:"taskChecklistItem"`
}

type DeleteTaskChecklistPayload

type DeleteTaskChecklistPayload struct {
	Ok            bool              `json:"ok"`
	TaskChecklist *db.TaskChecklist `json:"taskChecklist"`
}

type DeleteTaskComment

type DeleteTaskComment struct {
	CommentID uuid.UUID `json:"commentID"`
}

type DeleteTaskCommentPayload

type DeleteTaskCommentPayload struct {
	TaskID    uuid.UUID `json:"taskID"`
	CommentID uuid.UUID `json:"commentID"`
}

type DeleteTaskDueDateNotification

type DeleteTaskDueDateNotification struct {
	ID uuid.UUID `json:"id"`
}

type DeleteTaskDueDateNotificationsResult

type DeleteTaskDueDateNotificationsResult struct {
	Notifications []uuid.UUID `json:"notifications"`
}

type DeleteTaskGroupInput

type DeleteTaskGroupInput struct {
	TaskGroupID uuid.UUID `json:"taskGroupID"`
}

type DeleteTaskGroupPayload

type DeleteTaskGroupPayload struct {
	Ok           bool          `json:"ok"`
	AffectedRows int           `json:"affectedRows"`
	TaskGroup    *db.TaskGroup `json:"taskGroup"`
}

type DeleteTaskGroupTasks

type DeleteTaskGroupTasks struct {
	TaskGroupID uuid.UUID `json:"taskGroupID"`
}

type DeleteTaskGroupTasksPayload

type DeleteTaskGroupTasksPayload struct {
	TaskGroupID uuid.UUID   `json:"taskGroupID"`
	Tasks       []uuid.UUID `json:"tasks"`
}

type DeleteTaskInput

type DeleteTaskInput struct {
	TaskID uuid.UUID `json:"taskID"`
}

type DeleteTaskPayload

type DeleteTaskPayload struct {
	TaskID uuid.UUID `json:"taskID"`
}

type DeleteTeam

type DeleteTeam struct {
	TeamID uuid.UUID `json:"teamID"`
}

type DeleteTeamMember

type DeleteTeamMember struct {
	TeamID     uuid.UUID  `json:"teamID"`
	UserID     uuid.UUID  `json:"userID"`
	NewOwnerID *uuid.UUID `json:"newOwnerID"`
}

type DeleteTeamMemberPayload

type DeleteTeamMemberPayload struct {
	TeamID           uuid.UUID    `json:"teamID"`
	UserID           uuid.UUID    `json:"userID"`
	AffectedProjects []db.Project `json:"affectedProjects"`
}

type DeleteTeamPayload

type DeleteTeamPayload struct {
	Ok       bool         `json:"ok"`
	Team     *db.Team     `json:"team"`
	Projects []db.Project `json:"projects"`
}

type DeleteUserAccount

type DeleteUserAccount struct {
	UserID     uuid.UUID  `json:"userID"`
	NewOwnerID *uuid.UUID `json:"newOwnerID"`
}

type DeleteUserAccountPayload

type DeleteUserAccountPayload struct {
	Ok          bool            `json:"ok"`
	UserAccount *db.UserAccount `json:"userAccount"`
}

type DirectiveRoot

type DirectiveRoot struct {
	HasRole      func(ctx context.Context, obj interface{}, next graphql.Resolver, roles []RoleLevel, level ActionLevel, typeArg ObjectType) (res interface{}, err error)
	RequiresUser func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error)
}

type DueDate

type DueDate struct {
	At            *time.Time            `json:"at"`
	Notifications []DueDateNotification `json:"notifications"`
}

type DueDateNotification

type DueDateNotification struct {
	ID       uuid.UUID                   `json:"id"`
	Period   int                         `json:"period"`
	Duration DueDateNotificationDuration `json:"duration"`
}

type DueDateNotificationDuration

type DueDateNotificationDuration string
const (
	DueDateNotificationDurationMinute DueDateNotificationDuration = "MINUTE"
	DueDateNotificationDurationHour   DueDateNotificationDuration = "HOUR"
	DueDateNotificationDurationDay    DueDateNotificationDuration = "DAY"
	DueDateNotificationDurationWeek   DueDateNotificationDuration = "WEEK"
)

func (DueDateNotificationDuration) IsValid

func (e DueDateNotificationDuration) IsValid() bool

func (DueDateNotificationDuration) MarshalGQL

func (e DueDateNotificationDuration) MarshalGQL(w io.Writer)

func (DueDateNotificationDuration) String

func (*DueDateNotificationDuration) UnmarshalGQL

func (e *DueDateNotificationDuration) UnmarshalGQL(v interface{}) error

type DuplicateTaskGroup

type DuplicateTaskGroup struct {
	ProjectID   uuid.UUID `json:"projectID"`
	TaskGroupID uuid.UUID `json:"taskGroupID"`
	Name        string    `json:"name"`
	Position    float64   `json:"position"`
}

type DuplicateTaskGroupPayload

type DuplicateTaskGroupPayload struct {
	TaskGroup *db.TaskGroup `json:"taskGroup"`
}

type FindProject

type FindProject struct {
	ProjectID      *uuid.UUID `json:"projectID"`
	ProjectShortID *string    `json:"projectShortID"`
}

type FindTask

type FindTask struct {
	TaskID      *uuid.UUID `json:"taskID"`
	TaskShortID *string    `json:"taskShortID"`
}

type FindTeam

type FindTeam struct {
	TeamID uuid.UUID `json:"teamID"`
}

type FindUser

type FindUser struct {
	UserID uuid.UUID `json:"userID"`
}

type HasUnreadNotificationsResult

type HasUnreadNotificationsResult struct {
	Unread bool `json:"unread"`
}

type InviteProjectMembers

type InviteProjectMembers struct {
	ProjectID uuid.UUID      `json:"projectID"`
	Members   []MemberInvite `json:"members"`
}

type InviteProjectMembersPayload

type InviteProjectMembersPayload struct {
	Ok             bool            `json:"ok"`
	ProjectID      uuid.UUID       `json:"projectID"`
	Members        []Member        `json:"members"`
	InvitedMembers []InvitedMember `json:"invitedMembers"`
}

type InvitedMember

type InvitedMember struct {
	Email     string    `json:"email"`
	InvitedOn time.Time `json:"invitedOn"`
}

type InvitedUserAccount

type InvitedUserAccount struct {
	ID        uuid.UUID   `json:"id"`
	Email     string      `json:"email"`
	InvitedOn time.Time   `json:"invitedOn"`
	Member    *MemberList `json:"member"`
}

type LabelColorResolver

type LabelColorResolver interface {
	ID(ctx context.Context, obj *db.LabelColor) (uuid.UUID, error)
}

type LogoutUser

type LogoutUser struct {
	UserID uuid.UUID `json:"userID"`
}

type MasterEntry

type MasterEntry struct {
	MemberType MemberType
	ID         uuid.UUID
}

type MePayload

type MePayload struct {
	User         *db.UserAccount `json:"user"`
	Organization *RoleCode       `json:"organization"`
	TeamRoles    []TeamRole      `json:"teamRoles"`
	ProjectRoles []ProjectRole   `json:"projectRoles"`
}

type Member

type Member struct {
	ID          uuid.UUID    `json:"id"`
	Role        *db.Role     `json:"role"`
	FullName    string       `json:"fullName"`
	Username    string       `json:"username"`
	ProfileIcon *ProfileIcon `json:"profileIcon"`
	Owned       *OwnedList   `json:"owned"`
	Member      *MemberList  `json:"member"`
}

type MemberInvite

type MemberInvite struct {
	UserID *uuid.UUID `json:"userID"`
	Email  *string    `json:"email"`
}

type MemberList

type MemberList struct {
	Teams    []db.Team    `json:"teams"`
	Projects []db.Project `json:"projects"`
}

func GetMemberList

func GetMemberList(ctx context.Context, r db.Repository, user db.UserAccount) (*MemberList, error)

GetMemberList returns a list of projects the user is a member of

type MemberSearchFilter

type MemberSearchFilter struct {
	SearchFilter string     `json:"searchFilter"`
	ProjectID    *uuid.UUID `json:"projectID"`
}

type MemberSearchResult

type MemberSearchResult struct {
	Similarity int             `json:"similarity"`
	ID         string          `json:"id"`
	User       *db.UserAccount `json:"user"`
	Status     ShareStatus     `json:"status"`
}

type MemberType

type MemberType string
const (
	MemberTypeInvited MemberType = "INVITED"
	MemberTypeJoined  MemberType = "JOINED"
)

type MutationResolver

type MutationResolver interface {
	NotificationToggleRead(ctx context.Context, input NotificationToggleReadInput) (*Notified, error)
	NotificationMarkAllRead(ctx context.Context) (*NotificationMarkAllAsReadResult, error)
	CreateProjectLabel(ctx context.Context, input NewProjectLabel) (*db.ProjectLabel, error)
	DeleteProjectLabel(ctx context.Context, input DeleteProjectLabel) (*db.ProjectLabel, error)
	UpdateProjectLabel(ctx context.Context, input UpdateProjectLabel) (*db.ProjectLabel, error)
	UpdateProjectLabelName(ctx context.Context, input UpdateProjectLabelName) (*db.ProjectLabel, error)
	UpdateProjectLabelColor(ctx context.Context, input UpdateProjectLabelColor) (*db.ProjectLabel, error)
	InviteProjectMembers(ctx context.Context, input InviteProjectMembers) (*InviteProjectMembersPayload, error)
	DeleteProjectMember(ctx context.Context, input DeleteProjectMember) (*DeleteProjectMemberPayload, error)
	UpdateProjectMemberRole(ctx context.Context, input UpdateProjectMemberRole) (*UpdateProjectMemberRolePayload, error)
	DeleteInvitedProjectMember(ctx context.Context, input DeleteInvitedProjectMember) (*DeleteInvitedProjectMemberPayload, error)
	CreateProject(ctx context.Context, input NewProject) (*db.Project, error)
	DeleteProject(ctx context.Context, input DeleteProject) (*DeleteProjectPayload, error)
	UpdateProjectName(ctx context.Context, input *UpdateProjectName) (*db.Project, error)
	ToggleProjectVisibility(ctx context.Context, input ToggleProjectVisibility) (*ToggleProjectVisibilityPayload, error)
	CreateTaskChecklist(ctx context.Context, input CreateTaskChecklist) (*db.TaskChecklist, error)
	DeleteTaskChecklist(ctx context.Context, input DeleteTaskChecklist) (*DeleteTaskChecklistPayload, error)
	UpdateTaskChecklistName(ctx context.Context, input UpdateTaskChecklistName) (*db.TaskChecklist, error)
	CreateTaskChecklistItem(ctx context.Context, input CreateTaskChecklistItem) (*db.TaskChecklistItem, error)
	UpdateTaskChecklistLocation(ctx context.Context, input UpdateTaskChecklistLocation) (*UpdateTaskChecklistLocationPayload, error)
	UpdateTaskChecklistItemName(ctx context.Context, input UpdateTaskChecklistItemName) (*db.TaskChecklistItem, error)
	SetTaskChecklistItemComplete(ctx context.Context, input SetTaskChecklistItemComplete) (*db.TaskChecklistItem, error)
	DeleteTaskChecklistItem(ctx context.Context, input DeleteTaskChecklistItem) (*DeleteTaskChecklistItemPayload, error)
	UpdateTaskChecklistItemLocation(ctx context.Context, input UpdateTaskChecklistItemLocation) (*UpdateTaskChecklistItemLocationPayload, error)
	CreateTaskComment(ctx context.Context, input *CreateTaskComment) (*CreateTaskCommentPayload, error)
	DeleteTaskComment(ctx context.Context, input *DeleteTaskComment) (*DeleteTaskCommentPayload, error)
	UpdateTaskComment(ctx context.Context, input *UpdateTaskComment) (*UpdateTaskCommentPayload, error)
	CreateTaskGroup(ctx context.Context, input NewTaskGroup) (*db.TaskGroup, error)
	UpdateTaskGroupLocation(ctx context.Context, input NewTaskGroupLocation) (*db.TaskGroup, error)
	UpdateTaskGroupName(ctx context.Context, input UpdateTaskGroupName) (*db.TaskGroup, error)
	DeleteTaskGroup(ctx context.Context, input DeleteTaskGroupInput) (*DeleteTaskGroupPayload, error)
	DuplicateTaskGroup(ctx context.Context, input DuplicateTaskGroup) (*DuplicateTaskGroupPayload, error)
	SortTaskGroup(ctx context.Context, input SortTaskGroup) (*SortTaskGroupPayload, error)
	DeleteTaskGroupTasks(ctx context.Context, input DeleteTaskGroupTasks) (*DeleteTaskGroupTasksPayload, error)
	AddTaskLabel(ctx context.Context, input *AddTaskLabelInput) (*db.Task, error)
	RemoveTaskLabel(ctx context.Context, input *RemoveTaskLabelInput) (*db.Task, error)
	ToggleTaskLabel(ctx context.Context, input ToggleTaskLabelInput) (*ToggleTaskLabelPayload, error)
	CreateTask(ctx context.Context, input NewTask) (*db.Task, error)
	DeleteTask(ctx context.Context, input DeleteTaskInput) (*DeleteTaskPayload, error)
	UpdateTaskDescription(ctx context.Context, input UpdateTaskDescriptionInput) (*db.Task, error)
	UpdateTaskLocation(ctx context.Context, input NewTaskLocation) (*UpdateTaskLocationPayload, error)
	UpdateTaskName(ctx context.Context, input UpdateTaskName) (*db.Task, error)
	SetTaskComplete(ctx context.Context, input SetTaskComplete) (*db.Task, error)
	UpdateTaskDueDate(ctx context.Context, input UpdateTaskDueDate) (*db.Task, error)
	ToggleTaskWatch(ctx context.Context, input ToggleTaskWatch) (*db.Task, error)
	AssignTask(ctx context.Context, input *AssignTaskInput) (*db.Task, error)
	UnassignTask(ctx context.Context, input *UnassignTaskInput) (*db.Task, error)
	CreateTaskDueDateNotifications(ctx context.Context, input []CreateTaskDueDateNotification) (*CreateTaskDueDateNotificationsResult, error)
	UpdateTaskDueDateNotifications(ctx context.Context, input []UpdateTaskDueDateNotification) (*UpdateTaskDueDateNotificationsResult, error)
	DeleteTaskDueDateNotifications(ctx context.Context, input []DeleteTaskDueDateNotification) (*DeleteTaskDueDateNotificationsResult, error)
	CreateTeamMember(ctx context.Context, input CreateTeamMember) (*CreateTeamMemberPayload, error)
	UpdateTeamMemberRole(ctx context.Context, input UpdateTeamMemberRole) (*UpdateTeamMemberRolePayload, error)
	DeleteTeamMember(ctx context.Context, input DeleteTeamMember) (*DeleteTeamMemberPayload, error)
	DeleteTeam(ctx context.Context, input DeleteTeam) (*DeleteTeamPayload, error)
	CreateTeam(ctx context.Context, input NewTeam) (*db.Team, error)
	CreateUserAccount(ctx context.Context, input NewUserAccount) (*db.UserAccount, error)
	DeleteUserAccount(ctx context.Context, input DeleteUserAccount) (*DeleteUserAccountPayload, error)
	DeleteInvitedUserAccount(ctx context.Context, input DeleteInvitedUserAccount) (*DeleteInvitedUserAccountPayload, error)
	LogoutUser(ctx context.Context, input LogoutUser) (bool, error)
	ClearProfileAvatar(ctx context.Context) (*db.UserAccount, error)
	UpdateUserPassword(ctx context.Context, input UpdateUserPassword) (*UpdateUserPasswordPayload, error)
	UpdateUserRole(ctx context.Context, input UpdateUserRole) (*UpdateUserRolePayload, error)
	UpdateUserInfo(ctx context.Context, input UpdateUserInfo) (*UpdateUserInfoPayload, error)
}

type MyTasks

type MyTasks struct {
	Status MyTasksStatus `json:"status"`
	Sort   MyTasksSort   `json:"sort"`
}

type MyTasksPayload

type MyTasksPayload struct {
	Tasks    []db.Task            `json:"tasks"`
	Projects []ProjectTaskMapping `json:"projects"`
}

type MyTasksSort

type MyTasksSort string
const (
	MyTasksSortNone    MyTasksSort = "NONE"
	MyTasksSortProject MyTasksSort = "PROJECT"
	MyTasksSortDueDate MyTasksSort = "DUE_DATE"
)

func (MyTasksSort) IsValid

func (e MyTasksSort) IsValid() bool

func (MyTasksSort) MarshalGQL

func (e MyTasksSort) MarshalGQL(w io.Writer)

func (MyTasksSort) String

func (e MyTasksSort) String() string

func (*MyTasksSort) UnmarshalGQL

func (e *MyTasksSort) UnmarshalGQL(v interface{}) error

type MyTasksStatus

type MyTasksStatus string
const (
	MyTasksStatusAll               MyTasksStatus = "ALL"
	MyTasksStatusIncomplete        MyTasksStatus = "INCOMPLETE"
	MyTasksStatusCompleteAll       MyTasksStatus = "COMPLETE_ALL"
	MyTasksStatusCompleteToday     MyTasksStatus = "COMPLETE_TODAY"
	MyTasksStatusCompleteYesterday MyTasksStatus = "COMPLETE_YESTERDAY"
	MyTasksStatusCompleteOneWeek   MyTasksStatus = "COMPLETE_ONE_WEEK"
	MyTasksStatusCompleteTwoWeek   MyTasksStatus = "COMPLETE_TWO_WEEK"
	MyTasksStatusCompleteThreeWeek MyTasksStatus = "COMPLETE_THREE_WEEK"
)

func (MyTasksStatus) IsValid

func (e MyTasksStatus) IsValid() bool

func (MyTasksStatus) MarshalGQL

func (e MyTasksStatus) MarshalGQL(w io.Writer)

func (MyTasksStatus) String

func (e MyTasksStatus) String() string

func (*MyTasksStatus) UnmarshalGQL

func (e *MyTasksStatus) UnmarshalGQL(v interface{}) error

type NewProject

type NewProject struct {
	TeamID *uuid.UUID `json:"teamID"`
	Name   string     `json:"name"`
}

type NewProjectLabel

type NewProjectLabel struct {
	ProjectID    uuid.UUID `json:"projectID"`
	LabelColorID uuid.UUID `json:"labelColorID"`
	Name         *string   `json:"name"`
}

type NewTask

type NewTask struct {
	TaskGroupID uuid.UUID   `json:"taskGroupID"`
	Name        string      `json:"name"`
	Position    float64     `json:"position"`
	Assigned    []uuid.UUID `json:"assigned"`
}

type NewTaskGroup

type NewTaskGroup struct {
	ProjectID uuid.UUID `json:"projectID"`
	Name      string    `json:"name"`
	Position  float64   `json:"position"`
}

type NewTaskGroupLocation

type NewTaskGroupLocation struct {
	TaskGroupID uuid.UUID `json:"taskGroupID"`
	Position    float64   `json:"position"`
}

type NewTaskLocation

type NewTaskLocation struct {
	TaskID      uuid.UUID `json:"taskID"`
	TaskGroupID uuid.UUID `json:"taskGroupID"`
	Position    float64   `json:"position"`
}

type NewTeam

type NewTeam struct {
	Name           string    `json:"name"`
	OrganizationID uuid.UUID `json:"organizationID"`
}

type NewUserAccount

type NewUserAccount struct {
	Username string `json:"username"`
	Email    string `json:"email"`
	FullName string `json:"fullName"`
	Initials string `json:"initials"`
	Password string `json:"password"`
	RoleCode string `json:"roleCode"`
}

type NotificationCausedBy

type NotificationCausedBy struct {
	Fullname string    `json:"fullname"`
	Username string    `json:"username"`
	ID       uuid.UUID `json:"id"`
}

type NotificationData

type NotificationData struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type NotificationFilter

type NotificationFilter string
const (
	NotificationFilterAll       NotificationFilter = "ALL"
	NotificationFilterUnread    NotificationFilter = "UNREAD"
	NotificationFilterAssigned  NotificationFilter = "ASSIGNED"
	NotificationFilterMentioned NotificationFilter = "MENTIONED"
)

func (NotificationFilter) IsValid

func (e NotificationFilter) IsValid() bool

func (NotificationFilter) MarshalGQL

func (e NotificationFilter) MarshalGQL(w io.Writer)

func (NotificationFilter) String

func (e NotificationFilter) String() string

func (*NotificationFilter) UnmarshalGQL

func (e *NotificationFilter) UnmarshalGQL(v interface{}) error

type NotificationMarkAllAsReadResult

type NotificationMarkAllAsReadResult struct {
	Success bool `json:"success"`
}

type NotificationObservers

type NotificationObservers struct {
	Mu          sync.Mutex
	Subscribers map[string]map[string]chan *Notified
}

type NotificationResolver

type NotificationResolver interface {
	ID(ctx context.Context, obj *db.Notification) (uuid.UUID, error)
	ActionType(ctx context.Context, obj *db.Notification) (ActionType, error)
	CausedBy(ctx context.Context, obj *db.Notification) (*NotificationCausedBy, error)
	Data(ctx context.Context, obj *db.Notification) ([]NotificationData, error)
	CreatedAt(ctx context.Context, obj *db.Notification) (*time.Time, error)
}

type NotificationToggleReadInput

type NotificationToggleReadInput struct {
	NotifiedID uuid.UUID `json:"notifiedID"`
}

type Notified

type Notified struct {
	ID           uuid.UUID        `json:"id"`
	Notification *db.Notification `json:"notification"`
	Read         bool             `json:"read"`
	ReadAt       *time.Time       `json:"readAt"`
}

type NotifiedData

type NotifiedData struct {
	Data map[string]string
}

type NotifiedInput

type NotifiedInput struct {
	Limit  int                `json:"limit"`
	Cursor *string            `json:"cursor"`
	Filter NotificationFilter `json:"filter"`
}

type NotifiedResult

type NotifiedResult struct {
	TotalCount int        `json:"totalCount"`
	Notified   []Notified `json:"notified"`
	PageInfo   *PageInfo  `json:"pageInfo"`
}

type ObjectType

type ObjectType string
const (
	ObjectTypeOrg               ObjectType = "ORG"
	ObjectTypeTeam              ObjectType = "TEAM"
	ObjectTypeProject           ObjectType = "PROJECT"
	ObjectTypeTask              ObjectType = "TASK"
	ObjectTypeTaskGroup         ObjectType = "TASK_GROUP"
	ObjectTypeTaskChecklist     ObjectType = "TASK_CHECKLIST"
	ObjectTypeTaskChecklistItem ObjectType = "TASK_CHECKLIST_ITEM"
)

func (ObjectType) IsValid

func (e ObjectType) IsValid() bool

func (ObjectType) MarshalGQL

func (e ObjectType) MarshalGQL(w io.Writer)

func (ObjectType) String

func (e ObjectType) String() string

func (*ObjectType) UnmarshalGQL

func (e *ObjectType) UnmarshalGQL(v interface{}) error

type OrganizationResolver

type OrganizationResolver interface {
	ID(ctx context.Context, obj *db.Organization) (uuid.UUID, error)
}

type OwnedList

type OwnedList struct {
	Teams    []db.Team    `json:"teams"`
	Projects []db.Project `json:"projects"`
}

func GetOwnedList

func GetOwnedList(ctx context.Context, r db.Repository, user db.UserAccount) (*OwnedList, error)

GetOwnedList todo: remove this

type OwnersList

type OwnersList struct {
	Projects []uuid.UUID `json:"projects"`
	Teams    []uuid.UUID `json:"teams"`
}

type PageInfo

type PageInfo struct {
	EndCursor   *string `json:"endCursor"`
	HasNextPage bool    `json:"hasNextPage"`
}

type ProfileIcon

type ProfileIcon struct {
	URL      *string `json:"url"`
	Initials *string `json:"initials"`
	BgColor  *string `json:"bgColor"`
}

type ProjectLabelResolver

type ProjectLabelResolver interface {
	ID(ctx context.Context, obj *db.ProjectLabel) (uuid.UUID, error)

	LabelColor(ctx context.Context, obj *db.ProjectLabel) (*db.LabelColor, error)
	Name(ctx context.Context, obj *db.ProjectLabel) (*string, error)
}

type ProjectPermission

type ProjectPermission struct {
	Team    RoleCode `json:"team"`
	Project RoleCode `json:"project"`
	Org     RoleCode `json:"org"`
}

type ProjectResolver

type ProjectResolver interface {
	ID(ctx context.Context, obj *db.Project) (uuid.UUID, error)

	Team(ctx context.Context, obj *db.Project) (*db.Team, error)
	TaskGroups(ctx context.Context, obj *db.Project) ([]db.TaskGroup, error)
	Members(ctx context.Context, obj *db.Project) ([]Member, error)
	InvitedMembers(ctx context.Context, obj *db.Project) ([]InvitedMember, error)
	PublicOn(ctx context.Context, obj *db.Project) (*time.Time, error)
	Permission(ctx context.Context, obj *db.Project) (*ProjectPermission, error)
	Labels(ctx context.Context, obj *db.Project) ([]db.ProjectLabel, error)
}

type ProjectRole

type ProjectRole struct {
	ProjectID uuid.UUID `json:"projectID"`
	RoleCode  RoleCode  `json:"roleCode"`
}

type ProjectTaskMapping

type ProjectTaskMapping struct {
	ProjectID uuid.UUID `json:"projectID"`
	TaskID    uuid.UUID `json:"taskID"`
}

type ProjectsFilter

type ProjectsFilter struct {
	TeamID *uuid.UUID `json:"teamID"`
}

type QueryResolver

type QueryResolver interface {
	Organizations(ctx context.Context) ([]db.Organization, error)
	Users(ctx context.Context) ([]db.UserAccount, error)
	InvitedUsers(ctx context.Context) ([]InvitedUserAccount, error)
	FindUser(ctx context.Context, input FindUser) (*db.UserAccount, error)
	Projects(ctx context.Context, input *ProjectsFilter) ([]db.Project, error)
	Teams(ctx context.Context) ([]db.Team, error)
	FindTeam(ctx context.Context, input FindTeam) (*db.Team, error)
	MyTasks(ctx context.Context, input MyTasks) (*MyTasksPayload, error)
	LabelColors(ctx context.Context) ([]db.LabelColor, error)
	TaskGroups(ctx context.Context) ([]db.TaskGroup, error)
	Me(ctx context.Context) (*MePayload, error)
	Notifications(ctx context.Context) ([]Notified, error)
	Notified(ctx context.Context, input NotifiedInput) (*NotifiedResult, error)
	HasUnreadNotifications(ctx context.Context) (*HasUnreadNotificationsResult, error)
	FindProject(ctx context.Context, input FindProject) (*db.Project, error)
	FindTask(ctx context.Context, input FindTask) (*db.Task, error)
	SearchMembers(ctx context.Context, input MemberSearchFilter) ([]MemberSearchResult, error)
}

type RemoveTaskLabelInput

type RemoveTaskLabelInput struct {
	TaskID      uuid.UUID `json:"taskID"`
	TaskLabelID uuid.UUID `json:"taskLabelID"`
}

type Resolver

type Resolver struct {
	Repository    db.Repository
	AppConfig     config.AppConfig
	Notifications *NotificationObservers
	Job           jobs.JobQueue
	Redis         *redis.Client
}

Resolver handles resolving GraphQL queries & mutations

func (*Resolver) CreateNotification

func (r *Resolver) CreateNotification(ctx context.Context, data CreateNotificationParams) error

func (*Resolver) LabelColor

func (r *Resolver) LabelColor() LabelColorResolver

LabelColor returns LabelColorResolver implementation.

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) Notification

func (r *Resolver) Notification() NotificationResolver

Notification returns NotificationResolver implementation.

func (*Resolver) Organization

func (r *Resolver) Organization() OrganizationResolver

Organization returns OrganizationResolver implementation.

func (*Resolver) Project

func (r *Resolver) Project() ProjectResolver

Project returns ProjectResolver implementation.

func (*Resolver) ProjectLabel

func (r *Resolver) ProjectLabel() ProjectLabelResolver

ProjectLabel returns ProjectLabelResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

func (Resolver) SubscribeRedis

func (r Resolver) SubscribeRedis()

func (*Resolver) Subscription

func (r *Resolver) Subscription() SubscriptionResolver

Subscription returns SubscriptionResolver implementation.

func (*Resolver) Task

func (r *Resolver) Task() TaskResolver

Task returns TaskResolver implementation.

func (*Resolver) TaskActivity

func (r *Resolver) TaskActivity() TaskActivityResolver

TaskActivity returns TaskActivityResolver implementation.

func (*Resolver) TaskChecklist

func (r *Resolver) TaskChecklist() TaskChecklistResolver

TaskChecklist returns TaskChecklistResolver implementation.

func (*Resolver) TaskChecklistItem

func (r *Resolver) TaskChecklistItem() TaskChecklistItemResolver

TaskChecklistItem returns TaskChecklistItemResolver implementation.

func (*Resolver) TaskComment

func (r *Resolver) TaskComment() TaskCommentResolver

TaskComment returns TaskCommentResolver implementation.

func (*Resolver) TaskGroup

func (r *Resolver) TaskGroup() TaskGroupResolver

TaskGroup returns TaskGroupResolver implementation.

func (*Resolver) TaskLabel

func (r *Resolver) TaskLabel() TaskLabelResolver

TaskLabel returns TaskLabelResolver implementation.

func (*Resolver) Team

func (r *Resolver) Team() TeamResolver

Team returns TeamResolver implementation.

func (*Resolver) UserAccount

func (r *Resolver) UserAccount() UserAccountResolver

UserAccount returns UserAccountResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	LabelColor() LabelColorResolver
	Mutation() MutationResolver
	Notification() NotificationResolver
	Organization() OrganizationResolver
	Project() ProjectResolver
	ProjectLabel() ProjectLabelResolver
	Query() QueryResolver
	Subscription() SubscriptionResolver
	Task() TaskResolver
	TaskActivity() TaskActivityResolver
	TaskChecklist() TaskChecklistResolver
	TaskChecklistItem() TaskChecklistItemResolver
	TaskComment() TaskCommentResolver
	TaskGroup() TaskGroupResolver
	TaskLabel() TaskLabelResolver
	Team() TeamResolver
	UserAccount() UserAccountResolver
}

type RoleCode

type RoleCode string
const (
	RoleCodeOwner    RoleCode = "owner"
	RoleCodeAdmin    RoleCode = "admin"
	RoleCodeMember   RoleCode = "member"
	RoleCodeObserver RoleCode = "observer"
)

func ConvertToRoleCode

func ConvertToRoleCode(r string) RoleCode

ConvertToRoleCode converts a role code string to a RoleCode type

func (RoleCode) IsValid

func (e RoleCode) IsValid() bool

func (RoleCode) MarshalGQL

func (e RoleCode) MarshalGQL(w io.Writer)

func (RoleCode) String

func (e RoleCode) String() string

func (*RoleCode) UnmarshalGQL

func (e *RoleCode) UnmarshalGQL(v interface{}) error

type RoleLevel

type RoleLevel string
const (
	RoleLevelAdmin  RoleLevel = "ADMIN"
	RoleLevelMember RoleLevel = "MEMBER"
)

func (RoleLevel) IsValid

func (e RoleLevel) IsValid() bool

func (RoleLevel) MarshalGQL

func (e RoleLevel) MarshalGQL(w io.Writer)

func (RoleLevel) String

func (e RoleLevel) String() string

func (*RoleLevel) UnmarshalGQL

func (e *RoleLevel) UnmarshalGQL(v interface{}) error

type SetTaskChecklistItemComplete

type SetTaskChecklistItemComplete struct {
	TaskChecklistItemID uuid.UUID `json:"taskChecklistItemID"`
	Complete            bool      `json:"complete"`
}

type SetTaskComplete

type SetTaskComplete struct {
	TaskID   uuid.UUID `json:"taskID"`
	Complete bool      `json:"complete"`
}

type ShareStatus

type ShareStatus string
const (
	ShareStatusInvited ShareStatus = "INVITED"
	ShareStatusJoined  ShareStatus = "JOINED"
)

func (ShareStatus) IsValid

func (e ShareStatus) IsValid() bool

func (ShareStatus) MarshalGQL

func (e ShareStatus) MarshalGQL(w io.Writer)

func (ShareStatus) String

func (e ShareStatus) String() string

func (*ShareStatus) UnmarshalGQL

func (e *ShareStatus) UnmarshalGQL(v interface{}) error

type SortTaskGroup

type SortTaskGroup struct {
	TaskGroupID uuid.UUID            `json:"taskGroupID"`
	Tasks       []TaskPositionUpdate `json:"tasks"`
}

type SortTaskGroupPayload

type SortTaskGroupPayload struct {
	TaskGroupID uuid.UUID `json:"taskGroupID"`
	Tasks       []db.Task `json:"tasks"`
}

type SubscriptionResolver

type SubscriptionResolver interface {
	NotificationAdded(ctx context.Context) (<-chan *Notified, error)
}

type TaskActivityData

type TaskActivityData struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type TaskActivityResolver

type TaskActivityResolver interface {
	ID(ctx context.Context, obj *db.TaskActivity) (uuid.UUID, error)
	Type(ctx context.Context, obj *db.TaskActivity) (ActivityType, error)
	Data(ctx context.Context, obj *db.TaskActivity) ([]TaskActivityData, error)
	CausedBy(ctx context.Context, obj *db.TaskActivity) (*CausedBy, error)
}

type TaskBadges

type TaskBadges struct {
	Checklist *ChecklistBadge `json:"checklist"`
	Comments  *CommentsBadge  `json:"comments"`
}

type TaskChecklistItemResolver

type TaskChecklistItemResolver interface {
	ID(ctx context.Context, obj *db.TaskChecklistItem) (uuid.UUID, error)

	DueDate(ctx context.Context, obj *db.TaskChecklistItem) (*time.Time, error)
}

type TaskChecklistResolver

type TaskChecklistResolver interface {
	ID(ctx context.Context, obj *db.TaskChecklist) (uuid.UUID, error)

	Items(ctx context.Context, obj *db.TaskChecklist) ([]db.TaskChecklistItem, error)
}

type TaskCommentResolver

type TaskCommentResolver interface {
	ID(ctx context.Context, obj *db.TaskComment) (uuid.UUID, error)

	UpdatedAt(ctx context.Context, obj *db.TaskComment) (*time.Time, error)

	CreatedBy(ctx context.Context, obj *db.TaskComment) (*CreatedBy, error)
}

type TaskGroupResolver

type TaskGroupResolver interface {
	ID(ctx context.Context, obj *db.TaskGroup) (uuid.UUID, error)
	ProjectID(ctx context.Context, obj *db.TaskGroup) (string, error)

	Tasks(ctx context.Context, obj *db.TaskGroup) ([]db.Task, error)
}

type TaskLabelResolver

type TaskLabelResolver interface {
	ID(ctx context.Context, obj *db.TaskLabel) (uuid.UUID, error)
	ProjectLabel(ctx context.Context, obj *db.TaskLabel) (*db.ProjectLabel, error)
}

type TaskPositionUpdate

type TaskPositionUpdate struct {
	TaskID   uuid.UUID `json:"taskID"`
	Position float64   `json:"position"`
}

type TaskResolver

type TaskResolver interface {
	ID(ctx context.Context, obj *db.Task) (uuid.UUID, error)

	TaskGroup(ctx context.Context, obj *db.Task) (*db.TaskGroup, error)

	Description(ctx context.Context, obj *db.Task) (*string, error)
	Watched(ctx context.Context, obj *db.Task) (bool, error)
	DueDate(ctx context.Context, obj *db.Task) (*DueDate, error)

	CompletedAt(ctx context.Context, obj *db.Task) (*time.Time, error)
	Assigned(ctx context.Context, obj *db.Task) ([]Member, error)
	Labels(ctx context.Context, obj *db.Task) ([]db.TaskLabel, error)
	Checklists(ctx context.Context, obj *db.Task) ([]db.TaskChecklist, error)
	Badges(ctx context.Context, obj *db.Task) (*TaskBadges, error)
	Activity(ctx context.Context, obj *db.Task) ([]db.TaskActivity, error)
	Comments(ctx context.Context, obj *db.Task) ([]db.TaskComment, error)
}

type TeamPermission

type TeamPermission struct {
	Team RoleCode `json:"team"`
	Org  RoleCode `json:"org"`
}

type TeamResolver

type TeamResolver interface {
	ID(ctx context.Context, obj *db.Team) (uuid.UUID, error)

	Permission(ctx context.Context, obj *db.Team) (*TeamPermission, error)
	Members(ctx context.Context, obj *db.Team) ([]Member, error)
}

type TeamRole

type TeamRole struct {
	TeamID   uuid.UUID `json:"teamID"`
	RoleCode RoleCode  `json:"roleCode"`
}

type ToggleProjectVisibility

type ToggleProjectVisibility struct {
	ProjectID uuid.UUID `json:"projectID"`
	IsPublic  bool      `json:"isPublic"`
}

type ToggleProjectVisibilityPayload

type ToggleProjectVisibilityPayload struct {
	Project *db.Project `json:"project"`
}

type ToggleTaskLabelInput

type ToggleTaskLabelInput struct {
	TaskID         uuid.UUID `json:"taskID"`
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
}

type ToggleTaskLabelPayload

type ToggleTaskLabelPayload struct {
	Active bool     `json:"active"`
	Task   *db.Task `json:"task"`
}

type ToggleTaskWatch

type ToggleTaskWatch struct {
	TaskID uuid.UUID `json:"taskID"`
}

type UnassignTaskInput

type UnassignTaskInput struct {
	TaskID uuid.UUID `json:"taskID"`
	UserID uuid.UUID `json:"userID"`
}

type UpdateProjectLabel

type UpdateProjectLabel struct {
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
	LabelColorID   uuid.UUID `json:"labelColorID"`
	Name           string    `json:"name"`
}

type UpdateProjectLabelColor

type UpdateProjectLabelColor struct {
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
	LabelColorID   uuid.UUID `json:"labelColorID"`
}

type UpdateProjectLabelName

type UpdateProjectLabelName struct {
	ProjectLabelID uuid.UUID `json:"projectLabelID"`
	Name           string    `json:"name"`
}

type UpdateProjectMemberRole

type UpdateProjectMemberRole struct {
	ProjectID uuid.UUID `json:"projectID"`
	UserID    uuid.UUID `json:"userID"`
	RoleCode  RoleCode  `json:"roleCode"`
}

type UpdateProjectMemberRolePayload

type UpdateProjectMemberRolePayload struct {
	Ok     bool    `json:"ok"`
	Member *Member `json:"member"`
}

type UpdateProjectName

type UpdateProjectName struct {
	ProjectID uuid.UUID `json:"projectID"`
	Name      string    `json:"name"`
}

type UpdateTaskChecklistItemLocation

type UpdateTaskChecklistItemLocation struct {
	TaskChecklistID     uuid.UUID `json:"taskChecklistID"`
	TaskChecklistItemID uuid.UUID `json:"taskChecklistItemID"`
	Position            float64   `json:"position"`
}

type UpdateTaskChecklistItemLocationPayload

type UpdateTaskChecklistItemLocationPayload struct {
	TaskChecklistID uuid.UUID             `json:"taskChecklistID"`
	PrevChecklistID uuid.UUID             `json:"prevChecklistID"`
	ChecklistItem   *db.TaskChecklistItem `json:"checklistItem"`
}

type UpdateTaskChecklistItemName

type UpdateTaskChecklistItemName struct {
	TaskChecklistItemID uuid.UUID `json:"taskChecklistItemID"`
	Name                string    `json:"name"`
}

type UpdateTaskChecklistLocation

type UpdateTaskChecklistLocation struct {
	TaskChecklistID uuid.UUID `json:"taskChecklistID"`
	Position        float64   `json:"position"`
}

type UpdateTaskChecklistLocationPayload

type UpdateTaskChecklistLocationPayload struct {
	Checklist *db.TaskChecklist `json:"checklist"`
}

type UpdateTaskChecklistName

type UpdateTaskChecklistName struct {
	TaskChecklistID uuid.UUID `json:"taskChecklistID"`
	Name            string    `json:"name"`
}

type UpdateTaskComment

type UpdateTaskComment struct {
	CommentID uuid.UUID `json:"commentID"`
	Message   string    `json:"message"`
}

type UpdateTaskCommentPayload

type UpdateTaskCommentPayload struct {
	TaskID  uuid.UUID       `json:"taskID"`
	Comment *db.TaskComment `json:"comment"`
}

type UpdateTaskDescriptionInput

type UpdateTaskDescriptionInput struct {
	TaskID      uuid.UUID `json:"taskID"`
	Description string    `json:"description"`
}

type UpdateTaskDueDate

type UpdateTaskDueDate struct {
	TaskID  uuid.UUID  `json:"taskID"`
	HasTime bool       `json:"hasTime"`
	DueDate *time.Time `json:"dueDate"`
}

type UpdateTaskDueDateNotification

type UpdateTaskDueDateNotification struct {
	ID       uuid.UUID                   `json:"id"`
	Period   int                         `json:"period"`
	Duration DueDateNotificationDuration `json:"duration"`
}

type UpdateTaskDueDateNotificationsResult

type UpdateTaskDueDateNotificationsResult struct {
	Notifications []DueDateNotification `json:"notifications"`
}

type UpdateTaskGroupName

type UpdateTaskGroupName struct {
	TaskGroupID uuid.UUID `json:"taskGroupID"`
	Name        string    `json:"name"`
}

type UpdateTaskLocationPayload

type UpdateTaskLocationPayload struct {
	PreviousTaskGroupID uuid.UUID `json:"previousTaskGroupID"`
	Task                *db.Task  `json:"task"`
}

type UpdateTaskName

type UpdateTaskName struct {
	TaskID uuid.UUID `json:"taskID"`
	Name   string    `json:"name"`
}

type UpdateTeamMemberRole

type UpdateTeamMemberRole struct {
	TeamID   uuid.UUID `json:"teamID"`
	UserID   uuid.UUID `json:"userID"`
	RoleCode RoleCode  `json:"roleCode"`
}

type UpdateTeamMemberRolePayload

type UpdateTeamMemberRolePayload struct {
	Ok     bool      `json:"ok"`
	TeamID uuid.UUID `json:"teamID"`
	Member *Member   `json:"member"`
}

type UpdateUserInfo

type UpdateUserInfo struct {
	Name     string `json:"name"`
	Initials string `json:"initials"`
	Email    string `json:"email"`
	Bio      string `json:"bio"`
}

type UpdateUserInfoPayload

type UpdateUserInfoPayload struct {
	User *db.UserAccount `json:"user"`
}

type UpdateUserPassword

type UpdateUserPassword struct {
	UserID   uuid.UUID `json:"userID"`
	Password string    `json:"password"`
}

type UpdateUserPasswordPayload

type UpdateUserPasswordPayload struct {
	Ok   bool            `json:"ok"`
	User *db.UserAccount `json:"user"`
}

type UpdateUserRole

type UpdateUserRole struct {
	UserID   uuid.UUID `json:"userID"`
	RoleCode RoleCode  `json:"roleCode"`
}

type UpdateUserRolePayload

type UpdateUserRolePayload struct {
	User *db.UserAccount `json:"user"`
}

type UserAccountResolver

type UserAccountResolver interface {
	ID(ctx context.Context, obj *db.UserAccount) (uuid.UUID, error)

	Role(ctx context.Context, obj *db.UserAccount) (*db.Role, error)

	ProfileIcon(ctx context.Context, obj *db.UserAccount) (*ProfileIcon, error)
	Owned(ctx context.Context, obj *db.UserAccount) (*OwnedList, error)
	Member(ctx context.Context, obj *db.UserAccount) (*MemberList, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL