Files
cloud-services/services/ota_update_go/services/sms.go

51 lines
1.3 KiB
Go

package services
import (
"fmt"
"sync"
"github.com/fiskerinc/cloud-services/pkg/grpc/sms"
"github.com/fiskerinc/cloud-services/pkg/logger"
"github.com/fiskerinc/cloud-services/pkg/utils/envtool"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
grpctrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/google.golang.org/grpc"
)
var smsClient sms.SMSServiceClient
var smsClientOnce sync.Once
func newSmsClient() {
logger.Info().Msg("Init SMS client")
target := fmt.Sprintf("%s:%s",
envtool.GetEnv("SMS_HOST", "sms"),
envtool.GetEnv("SMS_PORT", "8077"))
// Create the client interceptor using the grpc trace package.
si := grpctrace.StreamClientInterceptor(grpctrace.WithServiceName("sms-grpc-client"))
ui := grpctrace.UnaryClientInterceptor(grpctrace.WithServiceName("sms-grpc-client"))
c, err := grpc.Dial(target, grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithStreamInterceptor(si), grpc.WithUnaryInterceptor(ui))
if err != nil {
logger.Error().Err(err).Send()
}
smsClient = sms.NewSMSServiceClient(c)
}
func GetSMSClient() sms.SMSServiceClient {
smsClientOnce.Do(func() {
if smsClient != nil {
return
}
newSmsClient()
})
return smsClient
}
func SetSmsClient(c sms.SMSServiceClient) {
smsClient = c
}