Paperclip/pkg/internal/gap/server.go

44 lines
1003 B
Go
Raw Normal View History

2024-06-16 15:32:52 +00:00
package gap
import (
"fmt"
2024-10-27 05:13:40 +00:00
"git.solsynth.dev/hypernet/nexus/pkg/nex"
"git.solsynth.dev/hypernet/nexus/pkg/proto"
2024-07-14 16:47:14 +00:00
"github.com/rs/zerolog/log"
2024-10-27 05:13:40 +00:00
"github.com/samber/lo"
2024-06-16 15:32:52 +00:00
"strings"
2024-06-22 04:18:54 +00:00
"github.com/spf13/viper"
2024-06-16 15:32:52 +00:00
)
2024-10-27 05:13:40 +00:00
var Nx *nex.Conn
2024-06-16 15:32:52 +00:00
2024-10-27 05:13:40 +00:00
func InitializeToNexus() error {
2024-06-22 04:18:54 +00:00
grpcBind := strings.SplitN(viper.GetString("grpc_bind"), ":", 2)
2024-07-14 16:47:14 +00:00
httpBind := strings.SplitN(viper.GetString("bind"), ":", 2)
2024-06-16 15:32:52 +00:00
2024-10-27 05:13:40 +00:00
outboundIp, _ := nex.GetOutboundIP()
2024-07-14 16:47:14 +00:00
grpcOutbound := fmt.Sprintf("%s:%s", outboundIp, grpcBind[1])
httpOutbound := fmt.Sprintf("%s:%s", outboundIp, httpBind[1])
var err error
2024-10-27 05:13:40 +00:00
Nx, err = nex.NewNexusConn(viper.GetString("nexus_addr"), &proto.ServiceInfo{
2024-07-14 16:47:14 +00:00
Id: viper.GetString("id"),
2024-10-27 05:13:40 +00:00
Type: "uc",
2024-07-14 16:47:14 +00:00
Label: "Paperclip",
GrpcAddr: grpcOutbound,
2024-11-02 18:14:56 +00:00
HttpAddr: lo.ToPtr("http://" + httpOutbound + "/api"),
2024-07-14 16:47:14 +00:00
})
if err == nil {
go func() {
2024-10-27 05:13:40 +00:00
err := Nx.RunRegistering()
2024-07-14 16:47:14 +00:00
if err != nil {
log.Error().Err(err).Msg("An error occurred while registering service...")
}
}()
2024-06-16 15:32:52 +00:00
}
2024-07-14 16:47:14 +00:00
return err
2024-06-16 15:32:52 +00:00
}