44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
// Package gapi implements the gRPC server for the Simple Bank application.
|
|
package gapi
|
|
|
|
import (
|
|
"github.com/FernandoJVideira/simple_bank/internal/auth"
|
|
"github.com/FernandoJVideira/simple_bank/internal/config"
|
|
db "github.com/FernandoJVideira/simple_bank/internal/db/sqlc"
|
|
"github.com/FernandoJVideira/simple_bank/internal/service"
|
|
"github.com/FernandoJVideira/simple_bank/internal/worker"
|
|
"github.com/FernandoJVideira/simple_bank/pb"
|
|
)
|
|
|
|
// Server serves gRPC requests for our banking service.
|
|
type Server struct {
|
|
pb.UnimplementedSimpleBankServer // Embedding for forward compatibility
|
|
config config.Config
|
|
store db.Store
|
|
tokenMaker auth.Maker
|
|
taskDistributor worker.TaskDistributor
|
|
userService service.UserService
|
|
authService service.AuthService
|
|
}
|
|
|
|
// NewServer creates a new gRPC server instance.
|
|
func NewServer(
|
|
config config.Config,
|
|
store db.Store,
|
|
taskDistributor worker.TaskDistributor,
|
|
tokenMaker auth.Maker,
|
|
userService service.UserService,
|
|
authService service.AuthService,
|
|
) (*Server, error) {
|
|
server := &Server{
|
|
config: config,
|
|
store: store,
|
|
tokenMaker: tokenMaker,
|
|
taskDistributor: taskDistributor,
|
|
userService: userService,
|
|
authService: authService,
|
|
}
|
|
|
|
return server, nil
|
|
}
|