Remove unused project open/close event listeners

This commit is contained in:
David Stotijn
2022-02-27 14:42:39 +01:00
parent 2ddf2a77e8
commit c5f76e1f9a

View File

@ -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 {