Increase and decrease the team metrics counter with events
This commit is contained in:
parent
dfbb3fe6f4
commit
c3de561c29
|
@ -194,3 +194,25 @@ type TeamMemberAddedEvent struct {
|
||||||
func (t *TeamMemberAddedEvent) TopicName() string {
|
func (t *TeamMemberAddedEvent) TopicName() string {
|
||||||
return "team.member.added"
|
return "team.member.added"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TeamCreatedEvent represents a TeamCreatedEvent event
|
||||||
|
type TeamCreatedEvent struct {
|
||||||
|
Team *Team
|
||||||
|
Doer *user.User
|
||||||
|
}
|
||||||
|
|
||||||
|
// TopicName defines the name for TeamCreatedEvent
|
||||||
|
func (t *TeamCreatedEvent) TopicName() string {
|
||||||
|
return "team.created"
|
||||||
|
}
|
||||||
|
|
||||||
|
// TeamDeletedEvent represents a TeamDeletedEvent event
|
||||||
|
type TeamDeletedEvent struct {
|
||||||
|
Team *Team
|
||||||
|
Doer *user.User
|
||||||
|
}
|
||||||
|
|
||||||
|
// TopicName defines the name for TeamDeletedEvent
|
||||||
|
func (t *TeamDeletedEvent) TopicName() string {
|
||||||
|
return "team.deleted"
|
||||||
|
}
|
||||||
|
|
|
@ -29,6 +29,8 @@ func RegisterListeners() {
|
||||||
events.RegisterListener((&NamespaceDeletedEvent{}).TopicName(), &DecreaseNamespaceCounter{})
|
events.RegisterListener((&NamespaceDeletedEvent{}).TopicName(), &DecreaseNamespaceCounter{})
|
||||||
events.RegisterListener((&TaskCreatedEvent{}).TopicName(), &IncreaseTaskCounter{})
|
events.RegisterListener((&TaskCreatedEvent{}).TopicName(), &IncreaseTaskCounter{})
|
||||||
events.RegisterListener((&TaskDeletedEvent{}).TopicName(), &DecreaseTaskCounter{})
|
events.RegisterListener((&TaskDeletedEvent{}).TopicName(), &DecreaseTaskCounter{})
|
||||||
|
events.RegisterListener((&TeamDeletedEvent{}).TopicName(), &DecreaseTeamCounter{})
|
||||||
|
events.RegisterListener((&TeamCreatedEvent{}).TopicName(), &IncreaseTeamCounter{})
|
||||||
}
|
}
|
||||||
|
|
||||||
//////
|
//////
|
||||||
|
@ -123,3 +125,36 @@ func (s *DecreaseNamespaceCounter) Handle(payload message.Payload) (err error) {
|
||||||
metrics.UpdateCount(-1, metrics.NamespaceCountKey)
|
metrics.UpdateCount(-1, metrics.NamespaceCountKey)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////
|
||||||
|
// Team Events
|
||||||
|
|
||||||
|
// IncreaseTeamCounter represents a listener
|
||||||
|
type IncreaseTeamCounter struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name defines the name for the IncreaseTeamCounter listener
|
||||||
|
func (s *IncreaseTeamCounter) Name() string {
|
||||||
|
return "team.counter.increase"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hanlde is executed when the event IncreaseTeamCounter listens on is fired
|
||||||
|
func (s *IncreaseTeamCounter) Handle(payload message.Payload) (err error) {
|
||||||
|
metrics.UpdateCount(1, metrics.TeamCountKey)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DecreaseTeamCounter represents a listener
|
||||||
|
type DecreaseTeamCounter struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name defines the name for the DecreaseTeamCounter listener
|
||||||
|
func (s *DecreaseTeamCounter) Name() string {
|
||||||
|
return "team.counter.decrease"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hanlde is executed when the event DecreaseTeamCounter listens on is fired
|
||||||
|
func (s *DecreaseTeamCounter) Handle(payload message.Payload) (err error) {
|
||||||
|
metrics.UpdateCount(-1, metrics.TeamCountKey)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"code.vikunja.io/api/pkg/events"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
|
|
||||||
"code.vikunja.io/api/pkg/metrics"
|
|
||||||
"code.vikunja.io/api/pkg/user"
|
"code.vikunja.io/api/pkg/user"
|
||||||
"code.vikunja.io/web"
|
"code.vikunja.io/web"
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
|
@ -270,8 +270,10 @@ func (t *Team) Create(s *xorm.Session, a web.Auth) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
metrics.UpdateCount(1, metrics.TeamCountKey)
|
return events.Publish(&TeamCreatedEvent{
|
||||||
return
|
Team: t,
|
||||||
|
Doer: doer,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete deletes a team
|
// Delete deletes a team
|
||||||
|
@ -311,8 +313,14 @@ func (t *Team) Delete(s *xorm.Session, a web.Auth) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
metrics.UpdateCount(-1, metrics.TeamCountKey)
|
doer, err := user.GetFromAuth(a)
|
||||||
return
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return events.Publish(&TeamDeletedEvent{
|
||||||
|
Team: t,
|
||||||
|
Doer: doer,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is the handler to create a team
|
// Update is the handler to create a team
|
||||||
|
|
Loading…
Reference in New Issue