slaventius 2 years ago
parent f256615246
commit 517ef22e82
  1. 41
      cmd/main.go
  2. 21
      internal/transport/grpc/grpc.go

@ -1,9 +1,13 @@
package main
import (
"context"
"fmt"
"log"
"net"
"os"
"os/signal"
"syscall"
"test3k/authDB/internal/config"
server "test3k/authDB/internal/transport/grpc"
api "test3k/authDB/pkg/api"
@ -12,11 +16,40 @@ import (
)
func main() {
s := grpc.NewServer()
srv := server.NewServer()
config := config.NewConfig()
ctx, _ := context.WithCancel(context.Background())
srv := server.NewServer()
s := grpc.NewServer()
//
signalChannel := make(chan os.Signal, 1)
signal.Notify(signalChannel, syscall.SIGINT)
signal.Notify(signalChannel, syscall.SIGTERM)
defer stop(signalChannel)
// Запуск сервера
go start(config, s, srv)
//
for {
select {
case <-signalChannel:
return
case <-ctx.Done():
return
}
}
}
// Остановка сервера
func stop(signalChannel chan os.Signal) {
log.Println("authDBServer stopping ...")
signal.Stop(signalChannel)
}
// Запуск сервера
func start(config *config.Config, s *grpc.Server, srv *server.AuthDBServer) {
api.RegisterAuthDBServer(s, srv)
//
@ -27,7 +60,9 @@ func main() {
}
//
fmt.Printf("authDBServer up (%s)\n", connStr)
log.Printf("authDBServer starting (%s)\n", connStr)
//
eru := s.Serve(lis)
if eru != nil {
log.Fatal(eru)

@ -3,6 +3,7 @@ package grpc
import (
"context"
"errors"
"log"
"strconv"
"sync"
api "test3k/authDB/pkg/api"
@ -19,22 +20,22 @@ type user struct {
Confirmed bool
}
type authDBServer struct {
type AuthDBServer struct {
mu sync.Mutex
users map[string]user
api.UnimplementedAuthDBServer
id int32
}
func NewServer() *authDBServer {
return &authDBServer{
func NewServer() *AuthDBServer {
return &AuthDBServer{
mu: sync.Mutex{},
users: make(map[string]user),
id: 0,
}
}
func (s *authDBServer) Login(ctx context.Context, req *api.LoginRequest) (*api.LoginResponse, error) {
func (s *AuthDBServer) Login(ctx context.Context, req *api.LoginRequest) (*api.LoginResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
@ -65,12 +66,14 @@ func (s *authDBServer) Login(ctx context.Context, req *api.LoginRequest) (*api.L
}, nil
}
func (s *authDBServer) Registration(ctx context.Context, req *api.RegistrationRequest) (*api.RegistrationResponse, error) {
func (s *AuthDBServer) Registration(ctx context.Context, req *api.RegistrationRequest) (*api.RegistrationResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
//
if val, ok := s.users[req.GetLogin()]; ok {
log.Printf("login %s already registered", val.Login)
return &api.RegistrationResponse{
Code: val.Code,
Email: val.Email,
@ -86,9 +89,9 @@ func (s *authDBServer) Registration(ctx context.Context, req *api.RegistrationRe
s.users[req.Login] = user{
ID: s.id,
Code: code,
Login: req.Login,
Login: req.GetLogin(),
Password: strconv.Itoa(unique),
Email: req.Email,
Email: req.GetEmail(),
Confirmed: false,
}
@ -117,11 +120,11 @@ func (s *authDBServer) Registration(ctx context.Context, req *api.RegistrationRe
return &api.RegistrationResponse{
Code: code,
Email: req.Email,
Email: req.GetEmail(),
}, nil
}
func (s *authDBServer) Confirmation(ctx context.Context, req *api.ConfirmationRequest) (*api.ConfirmationResponse, error) {
func (s *AuthDBServer) Confirmation(ctx context.Context, req *api.ConfirmationRequest) (*api.ConfirmationResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()

Loading…
Cancel
Save