vikunja/pkg/models/events.go

186 lines
3.7 KiB
Go

// Vikunja is a to-do list application to facilitate your life.
// Copyright 2018-2021 Vikunja and contributors. All rights reserved.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public Licensee as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public Licensee for more details.
//
// You should have received a copy of the GNU Affero General Public Licensee
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package models
import (
"code.vikunja.io/api/pkg/user"
)
/////////////////
// Task Events //
/////////////////
type TaskCreatedEvent struct {
Task *Task
Doer *user.User
}
func (t *TaskCreatedEvent) TopicName() string {
return "task.created"
}
type TaskUpdatedEvent struct {
Task *Task
Doer *user.User
}
func (t *TaskUpdatedEvent) TopicName() string {
return "task.updated"
}
type TaskAssigneeCreatedEvent struct {
Task *Task
Assignee *user.User
Doer *user.User
}
func (t *TaskAssigneeCreatedEvent) TopicName() string {
return "task.assignee.created"
}
type TaskCommentCreatedEvent struct {
Task *Task
Comment *TaskComment
Doer *user.User
}
func (t *TaskCommentCreatedEvent) TopicName() string {
return "task.comment.created"
}
//////////////////////
// Namespace Events //
//////////////////////
type NamespaceCreatedEvent struct {
Namespace *Namespace
Doer *user.User
}
func (n *NamespaceCreatedEvent) TopicName() string {
return "namespace.created"
}
type NamespaceUpdatedEvent struct {
Namespace *Namespace
Doer *user.User
}
func (n *NamespaceUpdatedEvent) TopicName() string {
return "namespace.updated"
}
// NamespaceDeletedEvent represents a NamespaceDeletedEvent event
type NamespaceDeletedEvent struct {
Namespace *Namespace
Doer *user.User
}
// TopicName defines the name for NamespaceDeletedEvent
func (t *NamespaceDeletedEvent) TopicName() string {
return "namespace.deleted"
}
/////////////////
// List Events //
/////////////////
type ListCreatedEvent struct {
List *List
Doer *user.User
}
func (l *ListCreatedEvent) TopicName() string {
return "list.created"
}
type ListUpdatedEvent struct {
List *List
Doer *user.User
}
func (l *ListUpdatedEvent) TopicName() string {
return "list.updated"
}
type ListDeletedEvent struct {
List *List
Doer *user.User
}
func (t *ListDeletedEvent) TopicName() string {
return "list.deleted"
}
////////////////////
// Sharing Events //
////////////////////
type ListSharedWithUserEvent struct {
List *List
User *user.User
Doer *user.User
}
func (l *ListSharedWithUserEvent) TopicName() string {
return "list.shared.user"
}
type ListSharedWithTeamEvent struct {
List *List
Team *Team
Doer *user.User
}
func (l *ListSharedWithTeamEvent) TopicName() string {
return "list.shared.team"
}
type NamespaceSharedWithUserEvent struct {
Namespace *Namespace
User *user.User
Doer *user.User
}
func (n *NamespaceSharedWithUserEvent) TopicName() string {
return "namespace.shared.user"
}
type NamespaceSharedWithTeamEvent struct {
Namespace *Namespace
Team *Team
Doer *user.User
}
func (n *NamespaceSharedWithTeamEvent) TopicName() string {
return "namespace.shared.team"
}
/////////////////
// Team Events //
/////////////////
type TeamMemberAddedEvent struct {
Team *Team
Member *user.User
Doer *user.User
}
func (t *TeamMemberAddedEvent) TopicName() string {
return "team.member.added"
}