service auth registration

This commit is contained in:
nquidox 2026-03-20 13:44:37 +03:00
parent 6eda67db60
commit 287b1f5a30
7 changed files with 478 additions and 0 deletions

43
pkg/authReg/service.go Normal file
View file

@ -0,0 +1,43 @@
package authReg
import (
"context"
er "merch-api/pkg/externalRegistration/v1"
"time"
)
type service struct {
client er.ExternalRegistrationClient
timeout time.Duration
}
func newService(c er.ExternalRegistrationClient, timeout time.Duration) *service {
return &service{
client: c,
timeout: timeout,
}
}
func (s *service) AuthenticateOrRegister(ctx context.Context, req *RegRequest) (*RegResponse, error) {
authCtx, cancel := context.WithTimeout(ctx, s.timeout)
defer cancel()
request := er.RegistrationRequest{
Name: req.Name,
Description: req.Description,
ServiceCode: int32(req.BaseCode),
ServiceEndCode: int32(req.EndCode),
Secret: req.SecretHash,
Status: req.Status,
}
response, err := s.client.AuthenticateOrRegister(authCtx, &request)
if err != nil {
return nil, err
}
return &RegResponse{
ServiceId: response.ServiceId,
AlreadyRegistered: response.AlreadyRegistered,
}, nil
}