From 90868e61689a8d7c3404c54ac4aa2ff9b3fc0107 Mon Sep 17 00:00:00 2001 From: netbenix Date: Sun, 7 Nov 2021 17:58:11 +0100 Subject: [PATCH] Added base of proto handler --- ProtoHandler/Handler.go | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 ProtoHandler/Handler.go diff --git a/ProtoHandler/Handler.go b/ProtoHandler/Handler.go new file mode 100644 index 0000000..2ec02c1 --- /dev/null +++ b/ProtoHandler/Handler.go @@ -0,0 +1,53 @@ +package ProtoHandler + +import ( + "context" + "google.golang.org/grpc" + "lpm-cli/Lotus" + proto "lpm-cli/Proto/lpm/go" + "time" +) + +func createConnection() *grpc.ClientConn{ + + logger := Lotus.DetailedLogger("ProtoHandler", "createConnection") + + //TODO Remove Hardcoded addr + conn, err := grpc.Dial("localhost:9090", grpc.WithInsecure()) + if err != nil{ + logger.Fatal(err) + } + + defer conn.Close() + + return conn +} + +func createRegistryClient() (proto.LpmRegistryClient, context.Context){ + + lrc := proto.NewLpmRegistryClient(createConnection()) + ctx, cancel := context.WithTimeout(context.Background(), time.Second * 10) + + defer cancel() + + return lrc, ctx +} + +func SearchPackages(platform string, architecture []string, query string) []PackageMetadata { + + logger := Lotus.DetailedLogger("ProtoHandler", "sendSearchRequest") + + client, ctx := createRegistryClient() + res, connErr := client.Search(ctx, &proto.SearchRequest{Platform: platform, Architecture: architecture, Query: query}) + if connErr != nil{ + logger.Fatal(connErr) + } + + packages := make([]PackageMetadata, len(res.GetPackages())) + + for i, pkg := range res.GetPackages() { + packages[i].FillMetadata(pkg) + } + + return packages +}