-
Notifications
You must be signed in to change notification settings - Fork 311
/
factory.go
44 lines (39 loc) · 1.36 KB
/
factory.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package router
import (
backendconfig "github.com/rudderlabs/rudder-server/config/backend-config"
"github.com/rudderlabs/rudder-server/jobsdb"
"github.com/rudderlabs/rudder-server/services/rsources"
"github.com/rudderlabs/rudder-server/services/transientsource"
)
type destinationConfig struct {
name string
responseRules map[string]interface{}
config map[string]interface{}
destinationID string
}
func getRouterConfig(destination *backendconfig.DestinationT, identifier string) destinationConfig {
return destinationConfig{
name: destination.DestinationDefinition.Name,
destinationID: identifier,
config: destination.DestinationDefinition.Config,
responseRules: destination.DestinationDefinition.ResponseRules,
}
}
type Factory struct {
Reporting reporter
Multitenant tenantStats
BackendConfig backendconfig.BackendConfig
RouterDB jobsdb.MultiTenantJobsDB
ProcErrorDB jobsdb.JobsDB
TransientSources transientsource.Service
RsourcesService rsources.JobService
}
func (f *Factory) New(destination *backendconfig.DestinationT, identifier string) *HandleT {
r := &HandleT{
Reporting: f.Reporting,
MultitenantI: f.Multitenant,
}
destConfig := getRouterConfig(destination, identifier)
r.Setup(f.BackendConfig, f.RouterDB, f.ProcErrorDB, destConfig, f.TransientSources, f.RsourcesService)
return r
}