From b99e508a9b1f870343cb0f17c3c95637827aeaf1 Mon Sep 17 00:00:00 2001 From: netbenix Date: Sat, 6 Nov 2021 22:40:26 +0100 Subject: [PATCH] Added structs for PackageMetadata and childs --- ProtoHandler/Checksums.go | 8 +++++ ProtoHandler/Dependency.go | 6 ++++ ProtoHandler/PackageMetadata.go | 58 +++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 ProtoHandler/Checksums.go create mode 100644 ProtoHandler/Dependency.go create mode 100644 ProtoHandler/PackageMetadata.go diff --git a/ProtoHandler/Checksums.go b/ProtoHandler/Checksums.go new file mode 100644 index 0000000..8cd9e80 --- /dev/null +++ b/ProtoHandler/Checksums.go @@ -0,0 +1,8 @@ +package ProtoHandler + +type Checksums struct { + MD5 string + SHA1 string + SHA256 string + SHA512 string +} diff --git a/ProtoHandler/Dependency.go b/ProtoHandler/Dependency.go new file mode 100644 index 0000000..4ab01ae --- /dev/null +++ b/ProtoHandler/Dependency.go @@ -0,0 +1,6 @@ +package ProtoHandler + +type Dependency struct { + ID string + VersionFilter string +} diff --git a/ProtoHandler/PackageMetadata.go b/ProtoHandler/PackageMetadata.go new file mode 100644 index 0000000..d3825f6 --- /dev/null +++ b/ProtoHandler/PackageMetadata.go @@ -0,0 +1,58 @@ +package ProtoHandler + +import proto "lpm-cli/Proto/lpm/go" + +type PackageMetadata struct { + Publisher string + Name string + Version string + Description string + Tags []string + Labels map[string]string + PackageSize uint64 + Checksums Checksums + Platform string + Architecture string + Dependencies []Dependency +} + + +func fillDependencies(protoDependency []*proto.Dependency) []Dependency { + dependencies := make([]Dependency, len(protoDependency)) + + for i, _ := range protoDependency{ + dependencies[i].ID = protoDependency[i].GetId() + dependencies[i].VersionFilter = protoDependency[i].GetVersionFilter() + } + + return dependencies +} + +func fillChecksums(checksum []*proto.Checksum) Checksums { + checksums := Checksums{} + + for i, _ := range checksum{ + switch checksum[i].Algorithm{ + case 0: checksums.MD5 = checksum[i].Checksum + case 1: checksums.SHA1 = checksum[i].Checksum + case 2: checksums.SHA256 = checksum[i].Checksum + case 3: checksums.SHA512 = checksum[i].Checksum + } + } + + return checksums +} + +func (metadata* PackageMetadata)FillMetadata(protoData *proto.PackageMetadata){ + metadata.Publisher = protoData.GetPublisher() + metadata.Name = protoData.GetName() + metadata.Version = protoData.GetVersion() + metadata.Description = protoData.GetDescription() + metadata.Tags = protoData.GetTags() + metadata.Labels = protoData.GetLabels() + metadata.PackageSize = protoData.GetPackageSize() + metadata.Checksums = fillChecksums(protoData.GetChecksums()) + metadata.Platform = protoData.Platform + metadata.Architecture = protoData.Architecture + metadata.Dependencies = fillDependencies(protoData.GetDependencies()) +} \ No newline at end of file