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 serviceId int32 } func newService(c verifyV1.AuthServiceClient, timeout time.Duration, sid int32) *service { return &service{ client: c, timeout: timeout, serviceId: sid, } } 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: s.serviceId, }) if err != nil { return "", err } if response == nil { return "", errors.New("no token") } if response.IsValid != true { return "", errors.New("invalid token") } 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 }