mirror of
https://github.com/dstotijn/hetty.git
synced 2025-07-01 18:47:29 -04:00
Remove unused project open/close event listeners
This commit is contained in:
@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"regexp"
|
"regexp"
|
||||||
"sync"
|
"sync"
|
||||||
@ -21,11 +20,6 @@ import (
|
|||||||
//nolint:gosec
|
//nolint:gosec
|
||||||
var ulidEntropy = rand.New(rand.NewSource(time.Now().UnixNano()))
|
var ulidEntropy = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
|
|
||||||
type (
|
|
||||||
OnProjectOpenFn func(projectID ulid.ULID) error
|
|
||||||
OnProjectCloseFn func(projectID ulid.ULID) error
|
|
||||||
)
|
|
||||||
|
|
||||||
// Service is used for managing projects.
|
// Service is used for managing projects.
|
||||||
type Service interface {
|
type Service interface {
|
||||||
CreateProject(ctx context.Context, name string) (Project, error)
|
CreateProject(ctx context.Context, name string) (Project, error)
|
||||||
@ -39,19 +33,15 @@ type Service interface {
|
|||||||
SetScopeRules(ctx context.Context, rules []scope.Rule) error
|
SetScopeRules(ctx context.Context, rules []scope.Rule) error
|
||||||
SetRequestLogFindFilter(ctx context.Context, filter reqlog.FindRequestsFilter) error
|
SetRequestLogFindFilter(ctx context.Context, filter reqlog.FindRequestsFilter) error
|
||||||
SetSenderRequestFindFilter(ctx context.Context, filter sender.FindRequestsFilter) error
|
SetSenderRequestFindFilter(ctx context.Context, filter sender.FindRequestsFilter) error
|
||||||
OnProjectOpen(fn OnProjectOpenFn)
|
|
||||||
OnProjectClose(fn OnProjectCloseFn)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type service struct {
|
type service struct {
|
||||||
repo Repository
|
repo Repository
|
||||||
reqLogSvc reqlog.Service
|
reqLogSvc reqlog.Service
|
||||||
senderSvc sender.Service
|
senderSvc sender.Service
|
||||||
scope *scope.Scope
|
scope *scope.Scope
|
||||||
activeProjectID ulid.ULID
|
activeProjectID ulid.ULID
|
||||||
onProjectOpenFns []OnProjectOpenFn
|
mu sync.RWMutex
|
||||||
onProjectCloseFns []OnProjectCloseFn
|
|
||||||
mu sync.RWMutex
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Project struct {
|
type Project struct {
|
||||||
@ -126,8 +116,6 @@ func (svc *service) CloseProject() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
closedProjectID := svc.activeProjectID
|
|
||||||
|
|
||||||
svc.activeProjectID = ulid.ULID{}
|
svc.activeProjectID = ulid.ULID{}
|
||||||
svc.reqLogSvc.SetActiveProjectID(ulid.ULID{})
|
svc.reqLogSvc.SetActiveProjectID(ulid.ULID{})
|
||||||
svc.reqLogSvc.SetBypassOutOfScopeRequests(false)
|
svc.reqLogSvc.SetBypassOutOfScopeRequests(false)
|
||||||
@ -136,8 +124,6 @@ func (svc *service) CloseProject() error {
|
|||||||
svc.senderSvc.SetFindReqsFilter(sender.FindRequestsFilter{})
|
svc.senderSvc.SetFindReqsFilter(sender.FindRequestsFilter{})
|
||||||
svc.scope.SetRules(nil)
|
svc.scope.SetRules(nil)
|
||||||
|
|
||||||
svc.emitProjectClosed(closedProjectID)
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,8 +169,6 @@ func (svc *service) OpenProject(ctx context.Context, projectID ulid.ULID) (Proje
|
|||||||
|
|
||||||
svc.scope.SetRules(project.Settings.ScopeRules)
|
svc.scope.SetRules(project.Settings.ScopeRules)
|
||||||
|
|
||||||
svc.emitProjectOpened()
|
|
||||||
|
|
||||||
return project, nil
|
return project, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,36 +201,6 @@ func (svc *service) Scope() *scope.Scope {
|
|||||||
return svc.scope
|
return svc.scope
|
||||||
}
|
}
|
||||||
|
|
||||||
func (svc *service) OnProjectOpen(fn OnProjectOpenFn) {
|
|
||||||
svc.mu.Lock()
|
|
||||||
defer svc.mu.Unlock()
|
|
||||||
|
|
||||||
svc.onProjectOpenFns = append(svc.onProjectOpenFns, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (svc *service) OnProjectClose(fn OnProjectCloseFn) {
|
|
||||||
svc.mu.Lock()
|
|
||||||
defer svc.mu.Unlock()
|
|
||||||
|
|
||||||
svc.onProjectCloseFns = append(svc.onProjectCloseFns, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (svc *service) emitProjectOpened() {
|
|
||||||
for _, fn := range svc.onProjectOpenFns {
|
|
||||||
if err := fn(svc.activeProjectID); err != nil {
|
|
||||||
log.Printf("[ERROR] Could not execute onProjectOpen function: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (svc *service) emitProjectClosed(projectID ulid.ULID) {
|
|
||||||
for _, fn := range svc.onProjectCloseFns {
|
|
||||||
if err := fn(projectID); err != nil {
|
|
||||||
log.Printf("[ERROR] Could not execute onProjectClose function: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (svc *service) SetScopeRules(ctx context.Context, rules []scope.Rule) error {
|
func (svc *service) SetScopeRules(ctx context.Context, rules []scope.Rule) error {
|
||||||
project, err := svc.ActiveProject(ctx)
|
project, err := svc.ActiveProject(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user