From c7c67a641e98ed78fe024ccca4e711c83c71c3be Mon Sep 17 00:00:00 2001 From: nquidox Date: Wed, 1 Apr 2026 17:49:18 +0300 Subject: [PATCH] get personal interface + provider + dto --- internal/common/interfaces.go | 4 ++++ internal/common/structs.go | 8 +++++++ pkg/authCheck/service.go | 42 +++++++++++++++++++++++++++++------ 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/internal/common/interfaces.go b/internal/common/interfaces.go index ab37322..425eac6 100644 --- a/internal/common/interfaces.go +++ b/internal/common/interfaces.go @@ -8,3 +8,7 @@ type MerchProvider interface { GetTasks(ctx context.Context) ([]Task, error) InsertPrices(ctx context.Context, rawPrices []Result) error } + +type AuthDataProvider interface { + GetPersonalData(ctx context.Context, userUuid string) (*PersonalDTO, error) +} diff --git a/internal/common/structs.go b/internal/common/structs.go index 8d13b0a..b4afece 100644 --- a/internal/common/structs.go +++ b/internal/common/structs.go @@ -10,3 +10,11 @@ type Result struct { OriginName string Price int32 } + +type PersonalDTO struct { + Uuid string + Email string + Username string + Name string + Surname string +} diff --git a/pkg/authCheck/service.go b/pkg/authCheck/service.go index 0fa33d3..f365f7c 100644 --- a/pkg/authCheck/service.go +++ b/pkg/authCheck/service.go @@ -3,29 +3,32 @@ package authCheck import ( "context" "errors" + "merch-api/internal/common" verifyV1 "merch-api/pkg/verify/v1" "time" ) type service struct { - client verifyV1.AuthServiceClient - timeout time.Duration + client verifyV1.AuthServiceClient + timeout time.Duration + serviceId int32 } -func newService(c verifyV1.AuthServiceClient, timeout time.Duration) *service { +func newService(c verifyV1.AuthServiceClient, timeout time.Duration, sid int32) *service { return &service{ - client: c, - timeout: timeout, + client: c, + timeout: timeout, + serviceId: sid, } } -func (s *service) VerifySession(ctx context.Context, sessionUuid string, serviceId int32) (string, error) { +func (s *service) VerifySession(ctx context.Context, sessionUuid string) (string, error) { runCtx, cancel := context.WithTimeout(ctx, s.timeout) defer cancel() response, err := s.client.VerifyToken(runCtx, &verifyV1.VerifyTokenRequest{ SessionToken: sessionUuid, - ServiceId: serviceId, + ServiceId: s.serviceId, }) if err != nil { return "", err @@ -41,3 +44,28 @@ func (s *service) VerifySession(ctx context.Context, sessionUuid string, service return response.UserUuid, nil } + +func (s *service) GetPersonalData(ctx context.Context, userUuid string) (*common.PersonalDTO, error) { + runCtx, cancel := context.WithTimeout(ctx, s.timeout) + defer cancel() + + response, err := s.client.GetPersonalInfo(runCtx, &verifyV1.PersonalRequest{ + UserUuid: userUuid, + ServiceId: s.serviceId, + }) + if err != nil { + return nil, err + } + + if response == nil { + return nil, errors.New("no data") + } + + return &common.PersonalDTO{ + Uuid: userUuid, + Email: response.Email, + Username: response.Username, + Name: response.Name, + Surname: response.Surname, + }, nil +}