horizoncd/horizon

View on GitHub
pkg/jobs/eventhandler/eventhandler.go

Summary

Maintainability
A
0 mins
Test Coverage
// Copyright © 2023 Horizoncd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
 
package eventhandler
 
import (
"context"
 
eventhandlercfg "github.com/horizoncd/horizon/pkg/config/eventhandler"
eventhandlersvc "github.com/horizoncd/horizon/pkg/eventhandler"
"github.com/horizoncd/horizon/pkg/jobs"
"github.com/horizoncd/horizon/pkg/param/managerparam"
)
 
func New(ctx context.Context, eventHandlerConfig eventhandlercfg.Config,
mgrs *managerparam.Manager) (jobs.Job, eventhandlersvc.Service) {
// start event handler service to generate webhook log by events
eventHandlerService := eventhandlersvc.NewService(ctx, mgrs, eventHandlerConfig)
 
return func(ctx context.Context) {
eventHandlerService.Start()
<-ctx.Done()
// graceful exit
eventHandlerService.StopAndWait()
}, eventHandlerService
}