Add Jacket indexer with capabilities implemented
This commit is contained in:
@@ -2,23 +2,43 @@ package indexer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
"google.golang.org/grpc"
|
||||
pb "homelab.lan/music-agregator/gen/music_agregator/indexer/v1"
|
||||
"homelab.lan/music-agregator/internal/config"
|
||||
)
|
||||
|
||||
type IndexerServer struct {
|
||||
indexer Indexer
|
||||
|
||||
pb.UnimplementedIndexerServiceServer
|
||||
}
|
||||
|
||||
func NewIndexerServer() *IndexerServer {
|
||||
return &IndexerServer{}
|
||||
func NewIndexerServer(cfg config.Config) (*IndexerServer, error) {
|
||||
switch cfg.Indexer.Type {
|
||||
case config.IndexerTypeJackett:
|
||||
indexer := NewIndexer(cfg)
|
||||
return &IndexerServer{indexer: indexer}, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("Unable to create the indexer for type: %v", cfg.Indexer.Type)
|
||||
}
|
||||
}
|
||||
|
||||
func (server *IndexerServer) Search(ctx context.Context, req *pb.SearchRequest) (*pb.SearchResponse, error) {
|
||||
return &pb.SearchResponse{}, nil
|
||||
}
|
||||
|
||||
func (server *IndexerServer) Capabilities(ctx context.Context, req *pb.CapabilitiesRequest) (*pb.CapabilitiesResponse, error) {
|
||||
capabilities, err := server.indexer.Capabilities(req.GetIndexer())
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to get capabilities from indexer")
|
||||
return nil, err
|
||||
}
|
||||
return capabilities.ToProto(), nil
|
||||
}
|
||||
|
||||
func (s *IndexerServer) Register(server *grpc.Server) {
|
||||
pb.RegisterIndexerServiceServer(server, s)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user