Files
2026-01-08 01:15:07 +00:00

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
}