mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package client
|
|
|
|
import (
|
|
config2 "github.com/crawlab-team/crawlab/core/config"
|
|
"github.com/crawlab-team/crawlab/core/container"
|
|
"github.com/crawlab-team/crawlab/core/interfaces"
|
|
)
|
|
|
|
type ServiceDelegate struct {
|
|
// settings
|
|
cfgPath string
|
|
|
|
// internals
|
|
c interfaces.GrpcClient
|
|
}
|
|
|
|
func (d *ServiceDelegate) GetConfigPath() string {
|
|
return d.cfgPath
|
|
}
|
|
|
|
func (d *ServiceDelegate) SetConfigPath(path string) {
|
|
d.cfgPath = path
|
|
}
|
|
|
|
func (d *ServiceDelegate) NewBaseServiceDelegate(id interfaces.ModelId) (svc interfaces.GrpcClientModelBaseService, err error) {
|
|
var opts []ModelBaseServiceDelegateOption
|
|
opts = append(opts, WithBaseServiceModelId(id))
|
|
if d.cfgPath != "" {
|
|
opts = append(opts, WithBaseServiceConfigPath(d.cfgPath))
|
|
}
|
|
return NewBaseServiceDelegate(opts...)
|
|
}
|
|
|
|
func NewServiceDelegate() (svc2 interfaces.GrpcClientModelService, err error) {
|
|
// service delegate
|
|
svc := &ServiceDelegate{
|
|
cfgPath: config2.GetConfigPath(),
|
|
}
|
|
|
|
// dependency injection
|
|
if err := container.GetContainer().Invoke(func(client interfaces.GrpcClient) {
|
|
svc.c = client
|
|
}); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return svc, nil
|
|
}
|