package v1 import ( "context" "connectrpc.com/connect" remotev1 "code.icb4dc0.de/buildr/api/generated/remote/v1" "code.icb4dc0.de/buildr/api/generated/remote/v1/rpcv1connect" "code.icb4dc0.de/buildr/buildr/modules" "code.icb4dc0.de/buildr/buildr/modules/plugin" ) var _ rpcv1connect.PluginManagerServiceHandler = (*PluginManagerServiceServer)(nil) type PluginManagerServiceServer struct { registry *modules.TypeRegistry } func (p PluginManagerServiceServer) RegisterPluginModule(_ context.Context, request *connect.Request[remotev1.RegisterPluginModuleRequest]) (*connect.Response[remotev1.RegisterPluginModuleResponse], error) { p.registry.RegisterModule(modules.ModuleFactoryFunc(func() modules.ModuleWithMeta { return &modules.Metadata[plugin.Module]{ Module: plugin.Module{ PluginPayload: plugin.MemoryPayload(request.Msg.GetPluginPayload()), ModuleSpec: make(map[string]any), PluginType: request.Msg.ModuleRef.ModuleType, PluginCategory: request.Msg.ModuleRef.ModuleCategory, }, } })) return connect.NewResponse(new(remotev1.RegisterPluginModuleResponse)), nil }