github.com/pavlo67/common@v0.5.3/common/server_http/server_http_jschmhr/jschmhr_starter.go (about)

     1  package server_http_jschmhr
     2  
     3  import (
     4  	"github.com/pkg/errors"
     5  
     6  	"github.com/pavlo67/common/common"
     7  	"github.com/pavlo67/common/common/config"
     8  	"github.com/pavlo67/common/common/joiner"
     9  	"github.com/pavlo67/common/common/logger"
    10  	"github.com/pavlo67/common/common/server_http"
    11  	"github.com/pavlo67/common/common/starter"
    12  )
    13  
    14  func Starter() starter.Operator {
    15  	return &server_http_jschmhrStarter{}
    16  }
    17  
    18  var l logger.Operator
    19  var _ starter.Operator = &server_http_jschmhrStarter{}
    20  
    21  type server_http_jschmhrStarter struct{}
    22  
    23  func (shjs *server_http_jschmhrStarter) Name() string {
    24  	return logger.GetCallInfo().PackageName
    25  }
    26  
    27  func (shjs *server_http_jschmhrStarter) Run(cfg *config.Envs, options common.Map, joinerOp joiner.Operator, l_ logger.Operator) error {
    28  	l = l_
    29  	interfaceKey := joiner.InterfaceKey(options.StringDefault("interface_key", string(server_http.InterfaceKey)))
    30  
    31  	configKey := options.StringDefault("config_key", "server_http")
    32  	var config server_http.ConfigStarter
    33  	if err := cfg.Value(configKey, &config); err != nil {
    34  		return err
    35  	}
    36  
    37  	// TODO!!! customize it
    38  	var secretENVs []string
    39  
    40  	srvOp, err := New(config.Port, config.TLSCertFile, config.TLSKeyFile, secretENVs)
    41  	if err != nil {
    42  		return errors.Wrap(err, "on server_http_jschmhr.New()")
    43  	}
    44  
    45  	if err = joinerOp.Join(srvOp, interfaceKey); err != nil {
    46  		return errors.Wrapf(err, "can't join *serverHTTPJschmhr{} as server_http.Operator with key '%s'", interfaceKey)
    47  	}
    48  
    49  	return nil
    50  
    51  }