From 6ff637212f4ef31bcb8551cacc0e3192f8a613cb Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Tue, 16 Jul 2024 10:53:02 +0800 Subject: [PATCH] :recycle: Moved to dealer --- go.mod | 10 ++--- go.sum | 14 ++----- pkg/internal/gap/client.go | 12 ------ pkg/internal/gap/server.go | 47 +++++++++++++----------- pkg/internal/server/exts/auth.go | 4 +- pkg/internal/services/accounts.go | 55 ++++++++-------------------- pkg/internal/services/articles.go | 8 ++-- pkg/internal/services/attachments.go | 3 +- pkg/internal/services/auth.go | 4 +- pkg/internal/services/posts.go | 17 ++++----- pkg/internal/services/realms.go | 34 +++++------------ pkg/main.go | 4 +- settings.toml | 11 +----- 13 files changed, 77 insertions(+), 146 deletions(-) delete mode 100644 pkg/internal/gap/client.go diff --git a/go.mod b/go.mod index 5ef3b4a..ffd10a6 100644 --- a/go.mod +++ b/go.mod @@ -3,21 +3,18 @@ module git.solsynth.dev/hydrogen/interactive go 1.21.6 require ( + git.solsynth.dev/hydrogen/dealer v0.0.0-20240716024524-cfb73fde1951 git.solsynth.dev/hydrogen/paperclip v0.0.0-20240622051057-0f56dba45745 - git.solsynth.dev/hydrogen/passport v0.0.0-20240623083719-86b2cd81400a github.com/go-playground/validator/v10 v10.17.0 github.com/gofiber/fiber/v2 v2.52.4 github.com/gofiber/template/html/v2 v2.1.1 - github.com/golang-jwt/jwt/v5 v5.2.0 github.com/google/uuid v1.6.0 - github.com/hashicorp/consul/api v1.29.1 - github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible github.com/json-iterator/go v1.1.12 + github.com/pemistahl/lingua-go v1.4.0 github.com/robfig/cron/v3 v3.0.1 github.com/rs/zerolog v1.31.0 github.com/samber/lo v1.39.0 github.com/spf13/viper v1.18.2 - golang.org/x/crypto v0.24.0 google.golang.org/grpc v1.64.0 gorm.io/datatypes v1.2.0 gorm.io/driver/postgres v1.5.4 @@ -36,6 +33,7 @@ require ( github.com/go-sql-driver/mysql v1.7.1 // indirect github.com/gofiber/template v1.8.3 // indirect github.com/gofiber/utils v1.1.0 // indirect + github.com/hashicorp/consul/api v1.29.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect @@ -64,7 +62,6 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.1.1 // indirect - github.com/pemistahl/lingua-go v1.4.0 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect @@ -81,6 +78,7 @@ require ( github.com/valyala/fasthttp v1.52.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect go.uber.org/multierr v1.11.0 // indirect + golang.org/x/crypto v0.24.0 // indirect golang.org/x/exp v0.0.0-20240707233637-46b078467d37 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect diff --git a/go.sum b/go.sum index 858926a..fcade58 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,9 @@ +git.solsynth.dev/hydrogen/dealer v0.0.0-20240716024414-abba3b1c259d h1:cBDO9mJRz6BW3OXm14svCb+LtERp332nOmrfs6AKNQg= +git.solsynth.dev/hydrogen/dealer v0.0.0-20240716024414-abba3b1c259d/go.mod h1:eZwAwP7ahL7TO8GWBlYFYDdjlna+8zHYbDfNabnuUEU= +git.solsynth.dev/hydrogen/dealer v0.0.0-20240716024524-cfb73fde1951 h1:RgZJK4PXhrjhUX75BclBCg2xfetMkswcMwMqfTBtryQ= +git.solsynth.dev/hydrogen/dealer v0.0.0-20240716024524-cfb73fde1951/go.mod h1:eZwAwP7ahL7TO8GWBlYFYDdjlna+8zHYbDfNabnuUEU= git.solsynth.dev/hydrogen/paperclip v0.0.0-20240622051057-0f56dba45745 h1:40BUsQMNXjqHyytkyF9py1HjTAWlRgO6R57YXUrHNy4= git.solsynth.dev/hydrogen/paperclip v0.0.0-20240622051057-0f56dba45745/go.mod h1:FsQGSLTl0gvo+9Jmbot02S72suyF9tFTrzDj70Xhifo= -git.solsynth.dev/hydrogen/passport v0.0.0-20240623081149-7ddbea8bcb86 h1:cxjBOhemnyxf49CJyPmnt1RKFHerK45rXXBPwsIFrhA= -git.solsynth.dev/hydrogen/passport v0.0.0-20240623081149-7ddbea8bcb86/go.mod h1:tUr7x1v0trG3ALDacdDuhJiPRPgFhJ1Si9OqNlYbgSk= -git.solsynth.dev/hydrogen/passport v0.0.0-20240623083719-86b2cd81400a h1:oxNbS6Q+sSOfYUQTcx9/awCmlk/lpVP997hgpMmFsyw= -git.solsynth.dev/hydrogen/passport v0.0.0-20240623083719-86b2cd81400a/go.mod h1:tUr7x1v0trG3ALDacdDuhJiPRPgFhJ1Si9OqNlYbgSk= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -68,8 +68,6 @@ github.com/gofiber/template/html/v2 v2.1.1/go.mod h1:2G0GHHOUx70C1LDncoBpe4T6maQ github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= -github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -147,8 +145,6 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible h1:jdpOPRN1zP63Td1hDQbZW73xKmzDvZHzVdNYxhnTMDA= -github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -310,8 +306,6 @@ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w= golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= diff --git a/pkg/internal/gap/client.go b/pkg/internal/gap/client.go deleted file mode 100644 index 6a6a39e..0000000 --- a/pkg/internal/gap/client.go +++ /dev/null @@ -1,12 +0,0 @@ -package gap - -import ( - "git.solsynth.dev/hydrogen/passport/pkg/hyper" - "github.com/spf13/viper" -) - -var H *hyper.HyperConn - -func NewHyperClient() { - H = hyper.NewHyperConn(viper.GetString("consul.addr")) -} diff --git a/pkg/internal/gap/server.go b/pkg/internal/gap/server.go index e3664bf..2fcf780 100644 --- a/pkg/internal/gap/server.go +++ b/pkg/internal/gap/server.go @@ -2,38 +2,41 @@ package gap import ( "fmt" - "strconv" + "git.solsynth.dev/hydrogen/dealer/pkg/hyper" + "git.solsynth.dev/hydrogen/dealer/pkg/proto" + "github.com/rs/zerolog/log" "strings" - "github.com/hashicorp/consul/api" "github.com/spf13/viper" ) -func Register() error { - cfg := api.DefaultConfig() - cfg.Address = viper.GetString("consul.addr") - - client, err := api.NewClient(cfg) - if err != nil { - return err - } +var H *hyper.HyperConn +func RegisterService() error { grpcBind := strings.SplitN(viper.GetString("grpc_bind"), ":", 2) + httpBind := strings.SplitN(viper.GetString("bind"), ":", 2) outboundIp, _ := GetOutboundIP() - port, _ := strconv.Atoi(grpcBind[1]) - registration := new(api.AgentServiceRegistration) - registration.ID = viper.GetString("id") - registration.Name = "Hydrogen.Interactive" - registration.Address = outboundIp.String() - registration.Port = port - registration.Check = &api.AgentServiceCheck{ - GRPC: fmt.Sprintf("%s:%s", outboundIp, grpcBind[1]), - Timeout: "5s", - Interval: "1m", - DeregisterCriticalServiceAfter: "3m", + grpcOutbound := fmt.Sprintf("%s:%s", outboundIp, grpcBind[1]) + httpOutbound := fmt.Sprintf("%s:%s", outboundIp, httpBind[1]) + + var err error + H, err = hyper.NewHyperConn(viper.GetString("dealer.addr"), &proto.ServiceInfo{ + Id: viper.GetString("id"), + Type: hyper.ServiceTypeAuthProvider, + Label: "Passport", + GrpcAddr: grpcOutbound, + HttpAddr: &httpOutbound, + }) + if err == nil { + go func() { + err := H.KeepRegisterService() + if err != nil { + log.Error().Err(err).Msg("An error occurred while registering service...") + } + }() } - return client.Agent().ServiceRegister(registration) + return err } diff --git a/pkg/internal/server/exts/auth.go b/pkg/internal/server/exts/auth.go index d014407..e05adc2 100644 --- a/pkg/internal/server/exts/auth.go +++ b/pkg/internal/server/exts/auth.go @@ -1,13 +1,13 @@ package exts import ( + "git.solsynth.dev/hydrogen/dealer/pkg/proto" "git.solsynth.dev/hydrogen/interactive/pkg/internal/services" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "github.com/gofiber/fiber/v2" ) func LinkAccountMiddleware(c *fiber.Ctx) error { - if val, ok := c.Locals("p_user").(*proto.Userinfo); ok { + if val, ok := c.Locals("p_user").(*proto.UserInfo); ok { if account, err := services.LinkAccount(val); err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } else { diff --git a/pkg/internal/services/accounts.go b/pkg/internal/services/accounts.go index 60d3849..12dd5a0 100644 --- a/pkg/internal/services/accounts.go +++ b/pkg/internal/services/accounts.go @@ -2,62 +2,37 @@ package services import ( "context" - "git.solsynth.dev/hydrogen/interactive/pkg/internal/database" + "git.solsynth.dev/hydrogen/dealer/pkg/hyper" + "git.solsynth.dev/hydrogen/dealer/pkg/proto" "git.solsynth.dev/hydrogen/interactive/pkg/internal/gap" "git.solsynth.dev/hydrogen/interactive/pkg/internal/models" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "github.com/rs/zerolog/log" - "github.com/spf13/viper" "time" ) -func GetAccountFriend(userId, relatedId uint, status int) (*proto.FriendshipResponse, error) { - var user models.Account - if err := database.C.Where("id = ?", userId).First(&user).Error; err != nil { - return nil, err - } - var related models.Account - if err := database.C.Where("id = ?", relatedId).First(&related).Error; err != nil { - return nil, err - } - +func NotifyPosterAccount(user models.Account, title, body string, subtitle *string) error { ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) defer cancel() - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") - if err != nil { - return nil, err - } - return proto.NewFriendshipsClient(pc).GetFriendship(ctx, &proto.FriendshipTwoSideLookupRequest{ - AccountId: uint64(user.ExternalID), - RelatedId: uint64(related.ExternalID), - Status: uint32(status), - }) -} - -func NotifyPosterAccount(user models.Account, subject, content string, links ...*proto.NotifyLink) error { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - defer cancel() - - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") + pc, err := gap.H.GetServiceGrpcConn(hyper.ServiceTypeAuthProvider) if err != nil { return err } - _, err = proto.NewNotifyClient(pc).NotifyUser(ctx, &proto.NotifyRequest{ - ClientId: viper.GetString("passport.client_id"), - ClientSecret: viper.GetString("passport.client_secret"), - Type: "interactive.feedback", - Subject: subject, - Content: content, - Links: links, - RecipientId: uint64(user.ExternalID), - IsRealtime: false, - IsForcePush: true, + _, err = proto.NewNotifierClient(pc).NotifyUser(ctx, &proto.NotifyUserRequest{ + UserId: uint64(user.ExternalID), + Notify: &proto.NotifyRequest{ + Topic: "interactive.feedback", + Title: title, + Subtitle: subtitle, + Body: body, + IsRealtime: false, + IsForcePush: true, + }, }) if err != nil { log.Warn().Err(err).Msg("An error occurred when notify account...") } else { - log.Debug().Uint("eid", user.ExternalID).Msg("Notified account.") + log.Debug().Uint("uid", user.ExternalID).Msg("Notified account.") } return err diff --git a/pkg/internal/services/articles.go b/pkg/internal/services/articles.go index a3d6b26..19d4d79 100644 --- a/pkg/internal/services/articles.go +++ b/pkg/internal/services/articles.go @@ -7,7 +7,6 @@ import ( "git.solsynth.dev/hydrogen/interactive/pkg/internal/database" "git.solsynth.dev/hydrogen/interactive/pkg/internal/models" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "github.com/rs/zerolog/log" "github.com/samber/lo" "github.com/spf13/viper" @@ -211,12 +210,11 @@ func ReactArticle(user models.Account, reaction models.Reaction) (bool, models.R Preload("Author"). First(&op).Error; err == nil { if op.Author.ID != user.ID { - articleUrl := fmt.Sprintf("https://%s/articles/%s", viper.GetString("domain"), op.Alias) - err := NotifyPosterAccount( + err = NotifyPosterAccount( op.Author, - fmt.Sprintf("%s reacted your article", user.Nick), + "Article got reacted", fmt.Sprintf("%s (%s) reacted your article a %s", user.Nick, user.Name, reaction.Symbol), - &proto.NotifyLink{Label: "Related article", Url: articleUrl}, + lo.ToPtr(fmt.Sprintf("%s reacted your article", user.Nick)), ) if err != nil { log.Error().Err(err).Msg("An error occurred when notifying user...") diff --git a/pkg/internal/services/attachments.go b/pkg/internal/services/attachments.go index c27ccbc..6ab544a 100644 --- a/pkg/internal/services/attachments.go +++ b/pkg/internal/services/attachments.go @@ -2,13 +2,14 @@ package services import ( "context" + "git.solsynth.dev/hydrogen/dealer/pkg/hyper" "git.solsynth.dev/hydrogen/interactive/pkg/internal/gap" "git.solsynth.dev/hydrogen/paperclip/pkg/proto" "github.com/samber/lo" ) func CheckAttachmentByIDExists(id uint, usage string) bool { - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Paperclip") + pc, err := gap.H.GetServiceGrpcConn(hyper.ServiceTypeFileProvider) if err != nil { return false } diff --git a/pkg/internal/services/auth.go b/pkg/internal/services/auth.go index 0805e1f..bdf6e6f 100644 --- a/pkg/internal/services/auth.go +++ b/pkg/internal/services/auth.go @@ -3,14 +3,14 @@ package services import ( "errors" "fmt" + "git.solsynth.dev/hydrogen/dealer/pkg/proto" "git.solsynth.dev/hydrogen/interactive/pkg/internal/database" "git.solsynth.dev/hydrogen/interactive/pkg/internal/models" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "gorm.io/gorm" "reflect" ) -func LinkAccount(userinfo *proto.Userinfo) (models.Account, error) { +func LinkAccount(userinfo *proto.UserInfo) (models.Account, error) { var account models.Account if userinfo == nil { return account, fmt.Errorf("remote userinfo was not found") diff --git a/pkg/internal/services/posts.go b/pkg/internal/services/posts.go index 0623aab..8c2866b 100644 --- a/pkg/internal/services/posts.go +++ b/pkg/internal/services/posts.go @@ -7,7 +7,6 @@ import ( "git.solsynth.dev/hydrogen/interactive/pkg/internal/database" "git.solsynth.dev/hydrogen/interactive/pkg/internal/models" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "github.com/rs/zerolog/log" "github.com/samber/lo" "github.com/spf13/viper" @@ -266,12 +265,11 @@ func NewPost(user models.Account, item models.Post) (models.Post, error) { Preload("Author"). First(&op).Error; err == nil { if op.Author.ID != user.ID { - postUrl := fmt.Sprintf("https://%s/posts/%s", viper.GetString("domain"), item.Alias) - err := NotifyPosterAccount( + err = NotifyPosterAccount( op.Author, - fmt.Sprintf("%s replied you", user.Nick), + "Post got replied", fmt.Sprintf("%s (%s) replied your post #%s.", user.Nick, user.Name, op.Alias), - &proto.NotifyLink{Label: "Related post", Url: postUrl}, + lo.ToPtr(fmt.Sprintf("%s replied you", user.Nick)), ) if err != nil { log.Error().Err(err).Msg("An error occurred when notifying user...") @@ -308,12 +306,11 @@ func ReactPost(user models.Account, reaction models.Reaction) (bool, models.Reac Preload("Author"). First(&op).Error; err == nil { if op.Author.ID != user.ID { - postUrl := fmt.Sprintf("https://%s/posts/%s", viper.GetString("domain"), op.Alias) - err := NotifyPosterAccount( + err = NotifyPosterAccount( op.Author, - fmt.Sprintf("%s reacted your post", user.Nick), - fmt.Sprintf("%s (%s) reacted your post a %s", user.Nick, user.Name, reaction.Symbol), - &proto.NotifyLink{Label: "Related post", Url: postUrl}, + "Post got replied", + fmt.Sprintf("%s (%s) replied your post #%s.", user.Nick, user.Name, op.Alias), + lo.ToPtr(fmt.Sprintf("%s replied you", user.Nick)), ) if err != nil { log.Error().Err(err).Msg("An error occurred when notifying user...") diff --git a/pkg/internal/services/realms.go b/pkg/internal/services/realms.go index 327bd1c..d4dcfcd 100644 --- a/pkg/internal/services/realms.go +++ b/pkg/internal/services/realms.go @@ -4,10 +4,11 @@ import ( "context" "errors" "fmt" + "git.solsynth.dev/hydrogen/dealer/pkg/hyper" + "git.solsynth.dev/hydrogen/dealer/pkg/proto" "git.solsynth.dev/hydrogen/interactive/pkg/internal/database" "git.solsynth.dev/hydrogen/interactive/pkg/internal/gap" "git.solsynth.dev/hydrogen/interactive/pkg/internal/models" - "git.solsynth.dev/hydrogen/passport/pkg/proto" "github.com/samber/lo" "gorm.io/gorm" "reflect" @@ -15,11 +16,11 @@ import ( func GetRealmWithExtID(id uint) (models.Realm, error) { var realm models.Realm - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") + pc, err := gap.H.GetServiceGrpcConn(hyper.ServiceTypeAuthProvider) if err != nil { return realm, err } - response, err := proto.NewRealmsClient(pc).GetRealm(context.Background(), &proto.RealmLookupRequest{ + response, err := proto.NewRealmClient(pc).GetRealm(context.Background(), &proto.LookupRealmRequest{ Id: lo.ToPtr(uint64(id)), }) if err != nil { @@ -30,11 +31,11 @@ func GetRealmWithExtID(id uint) (models.Realm, error) { func GetRealmWithAlias(alias string) (models.Realm, error) { var realm models.Realm - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") + pc, err := gap.H.GetServiceGrpcConn(hyper.ServiceTypeAuthProvider) if err != nil { return realm, err } - response, err := proto.NewRealmsClient(pc).GetRealm(context.Background(), &proto.RealmLookupRequest{ + response, err := proto.NewRealmClient(pc).GetRealm(context.Background(), &proto.LookupRealmRequest{ Alias: &alias, }) if err != nil { @@ -43,16 +44,16 @@ func GetRealmWithAlias(alias string) (models.Realm, error) { return LinkRealm(response) } -func GetRealmMember(realmId uint, userId uint) (*proto.RealmMemberResponse, error) { +func GetRealmMember(realmId uint, userId uint) (*proto.RealmMemberInfo, error) { var realm models.Realm if err := database.C.Where("id = ?", realmId).First(&realm).Error; err != nil { return nil, err } - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") + pc, err := gap.H.GetServiceGrpcConn(hyper.ServiceTypeAuthProvider) if err != nil { return nil, err } - response, err := proto.NewRealmsClient(pc).GetRealmMember(context.Background(), &proto.RealmMemberLookupRequest{ + response, err := proto.NewRealmClient(pc).GetRealmMember(context.Background(), &proto.RealmMemberLookupRequest{ RealmId: uint64(realm.ExternalID), UserId: lo.ToPtr(uint64(userId)), }) @@ -63,22 +64,7 @@ func GetRealmMember(realmId uint, userId uint) (*proto.RealmMemberResponse, erro } } -func ListRealmMember(realmId uint) ([]*proto.RealmMemberResponse, error) { - pc, err := gap.H.DiscoverServiceGRPC("Hydrogen.Passport") - if err != nil { - return nil, err - } - response, err := proto.NewRealmsClient(pc).ListRealmMember(context.Background(), &proto.RealmMemberLookupRequest{ - RealmId: uint64(realmId), - }) - if err != nil { - return nil, err - } else { - return response.Data, nil - } -} - -func LinkRealm(info *proto.RealmResponse) (models.Realm, error) { +func LinkRealm(info *proto.RealmInfo) (models.Realm, error) { var realm models.Realm if info == nil { return realm, fmt.Errorf("remote realm info was not found") diff --git a/pkg/main.go b/pkg/main.go index fc3233e..fd552a8 100644 --- a/pkg/main.go +++ b/pkg/main.go @@ -42,10 +42,8 @@ func main() { } // Connect other services - if err := gap.Register(); err != nil { + if err := gap.RegisterService(); err != nil { log.Fatal().Err(err).Msg("An error occurred when connecting to consul...") - } else { - gap.NewHyperClient() } // Configure timed tasks diff --git a/settings.toml b/settings.toml index 5f99ecd..ee3b42e 100644 --- a/settings.toml +++ b/settings.toml @@ -11,15 +11,8 @@ secret = "LtTjzAGFLshwXhN4ZD4nG5KlMv1MWcsvfv03TSZYnT1VhiAnLIZFTnHUwR0XhGgi" database = false print_routes = false -[paperclip] -endpoint = "http://localhost:8443" -grpc_endpoint = "localhost:7443" - -[passport] -client_id = "solarplaza" -client_secret = "Z9k9AFTj^p" -endpoint = "http://localhost:8444" -grpc_endpoint = "localhost:7444" +[dealer] +addr = "127.0.0.1:7442" [mailer] name = "Alphabot "