Skip to content

Commit 0d38338

Browse files
fixup mapper
1 parent a768fa6 commit 0d38338

File tree

1 file changed

+71
-15
lines changed
  • internal/cli/feedback/result

1 file changed

+71
-15
lines changed

internal/cli/feedback/result/rpc.go

Lines changed: 71 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,27 @@ type LibraryRelease struct {
176176
Dependencies []*LibraryDependency `json:"dependencies,omitempty"`
177177
}
178178

179+
func NewLibraryRelease(l *rpc.LibraryRelease) *LibraryRelease {
180+
if l == nil {
181+
return nil
182+
}
183+
return &LibraryRelease{
184+
Author: l.GetAuthor(),
185+
Version: l.GetVersion(),
186+
Maintainer: l.GetMaintainer(),
187+
Sentence: l.GetSentence(),
188+
Paragraph: l.GetParagraph(),
189+
Website: l.GetWebsite(),
190+
Category: l.GetCategory(),
191+
Architectures: l.GetArchitectures(),
192+
Types: l.GetTypes(),
193+
Resources: NewDownloadResource(l.GetResources()),
194+
License: l.GetLicense(),
195+
ProvidesIncludes: l.GetProvidesIncludes(),
196+
Dependencies: NewLibraryDependencies(l.GetDependencies()),
197+
}
198+
}
199+
179200
type DownloadResource struct {
180201
Url string `json:"url,omitempty"`
181202
ArchiveFilename string `json:"archive_filename,omitempty"`
@@ -231,21 +252,7 @@ func NewInstalledLibraryResult(l *rpc.InstalledLibrary) *InstalledLibrary {
231252
CompatibleWith: libraryCompatibleWithMap,
232253
InDevelopment: l.GetLibrary().GetInDevelopment(),
233254
},
234-
Release: &LibraryRelease{
235-
Author: l.GetRelease().GetAuthor(),
236-
Version: l.GetRelease().GetVersion(),
237-
Maintainer: l.GetRelease().GetMaintainer(),
238-
Sentence: l.GetRelease().GetSentence(),
239-
Paragraph: l.GetRelease().GetParagraph(),
240-
Website: l.GetRelease().GetWebsite(),
241-
Category: l.GetRelease().GetCategory(),
242-
Architectures: l.GetRelease().GetArchitectures(),
243-
Types: l.GetRelease().GetTypes(),
244-
Resources: NewDownloadResource(l.GetRelease().GetResources()),
245-
License: l.GetRelease().GetLicense(),
246-
ProvidesIncludes: l.GetRelease().GetProvidesIncludes(),
247-
Dependencies: NewLibraryDependencies(l.GetRelease().GetDependencies()),
248-
},
255+
Release: NewLibraryRelease(l.GetRelease()),
249256
}
250257
}
251258

@@ -727,3 +734,52 @@ func NewLibraryDependencyStatus(l *rpc.LibraryDependencyStatus) *LibraryDependen
727734
VersionInstalled: l.GetVersionInstalled(),
728735
}
729736
}
737+
738+
type LibrarySearchStatus string
739+
740+
type LibrarySearchResponse struct {
741+
Libraries []*SearchedLibrary `json:"libraries,omitempty"`
742+
Status LibrarySearchStatus `json:"status,omitempty"`
743+
}
744+
745+
func NewLibrarySearchResponse(l *rpc.LibrarySearchResponse) *LibrarySearchResponse {
746+
if l == nil {
747+
return nil
748+
}
749+
750+
searchedLibraries := make([]*SearchedLibrary, len(l.GetLibraries()))
751+
for i, v := range l.GetLibraries() {
752+
searchedLibraries[i] = NewSearchedLibrary(v)
753+
}
754+
755+
return &LibrarySearchResponse{
756+
Libraries: searchedLibraries,
757+
Status: LibrarySearchStatus(l.GetStatus().Enum().String()),
758+
}
759+
}
760+
761+
type SearchedLibrary struct {
762+
Name string `json:"name,omitempty"`
763+
Releases orderedmap.Map[string, *LibraryRelease] `json:"releases,omitempty"`
764+
Latest *LibraryRelease `json:"latest,omitempty"`
765+
AvailableVersions []string `json:"available_versions,omitempty"`
766+
}
767+
768+
func NewSearchedLibrary(l *rpc.SearchedLibrary) *SearchedLibrary {
769+
if l == nil {
770+
return nil
771+
}
772+
// TODO understand if we want semver keys
773+
releasesMap := orderedmap.New[string, *LibraryRelease]()
774+
for k, v := range l.GetReleases() {
775+
releasesMap.Set(k, NewLibraryRelease(v))
776+
}
777+
releasesMap.SortStableKeys(cmp.Compare)
778+
779+
return &SearchedLibrary{
780+
Name: l.GetName(),
781+
Releases: releasesMap,
782+
Latest: NewLibraryRelease(l.GetLatest()),
783+
AvailableVersions: l.GetAvailableVersions(),
784+
}
785+
}

0 commit comments

Comments
 (0)