github.com/timoth-y/kicksware-api/order-service@v0.0.0-20201002192818-87b546a7ae5a/container/factory/pipeFactory.go (about)

     1  package factory
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	"github.com/timoth-y/kicksware-api/search-service/core/pipe"
     7  	"github.com/timoth-y/kicksware-api/search-service/core/service"
     8  	searcnEnv "github.com/timoth-y/kicksware-api/search-service/env"
     9  	"github.com/timoth-y/kicksware-api/search-service/usecase/pipes/REST"
    10  	"github.com/timoth-y/kicksware-api/search-service/usecase/pipes/gRPC"
    11  
    12  	"github.com/timoth-y/kicksware-api/order-service/env"
    13  )
    14  
    15  func ProvideReferenceRESTPipe(auth service.AuthService, config env.ServiceConfig) pipe.SneakerReferencePipe {
    16  	var searchConfig searcnEnv.ServiceConfig
    17  	castService(config, &searchConfig)
    18  	return REST.NewSneakerReferencePipe(auth, searchConfig.Common)
    19  }
    20  
    21  func ProvideReferenceGRPCPipe(config env.ServiceConfig) pipe.SneakerReferencePipe {
    22  	var searchConfig searcnEnv.ServiceConfig
    23  	castService(config, &searchConfig)
    24  	return gRPC.NewSneakerReferencePipe(searchConfig)
    25  }
    26  
    27  func ProvideProductRESTPipe(config env.ServiceConfig) pipe.SneakerProductPipe {
    28  	// return pipes.NewSneakerProductPipe(config.Common)
    29  	panic("ProvideProductRESTPipe: not implemented")
    30  }
    31  
    32  func ProvideProductGRPCPipe(config env.ServiceConfig) pipe.SneakerProductPipe {
    33  	// return pipes.NewSneakerProductPipe(config.Common)
    34  	panic("ProvideProductGRPCPipe: not implemented")
    35  }
    36  
    37  func castService(native interface{}, foreign interface{}) error {
    38  	bytes, err := json.Marshal(native); if err != nil {
    39  		return err
    40  	}
    41  	json.Unmarshal(bytes, foreign)
    42  	return nil
    43  }