Files
backend/internal/wire/grpc.go
lan c561a0bb0c feat(grpc): add gRPC server infrastructure and schedule sync service
Add gRPC server support with configurable TLS, environment-based settings, and Wire injection. Implement schedule synchronization service with task runner integration for external course data fetching.

- Add gRPC configuration with env var overrides (APP_GRPC_ENABLED, APP_GRPC_PORT, etc.)
- Create gRPC server infrastructure with runner task management
- Implement ScheduleSyncService for course data synchronization
- Add sync endpoint to schedule handler for external system integration
- Update repository with context-aware batch delete operation
- Wire all dependencies including zap logger for structured logging
2026-03-13 20:40:20 +08:00

26 lines
561 B
Go

package wire
import (
"carrot_bbs/internal/config"
"carrot_bbs/internal/grpc/runner"
"github.com/google/wire"
"go.uber.org/zap"
)
// GRPCSet gRPC 相关的 Provider Set
var GRPCSet = wire.NewSet(
ProvideGRPCServer,
ProvideTaskManager,
)
// ProvideGRPCServer 提供 gRPC 服务器
func ProvideGRPCServer(cfg *config.Config, logger *zap.Logger) *runner.Server {
return runner.NewServer(&cfg.GRPC, logger)
}
// ProvideTaskManager 提供 TaskManager
func ProvideTaskManager(server *runner.Server) *runner.TaskManager {
return server.GetTaskManager()
}