From 2c209d7dcc6c3486a409741a5daaaf1f67e73336 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sat, 20 Nov 2021 20:18:10 +0100 Subject: [PATCH] check if release has suggestions if unknown before downloading, so provided suggestions can be used safely --- .idea/workspace.xml | 38 ++++++++++++++++++++++++++++----- src/api/Globals.go | 2 +- src/elements/project/Release.go | 22 ++++++++++++++++++- 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index cd8805d..fe5b07b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,6 +7,12 @@ + + + + + + - + + + @@ -43,13 +52,22 @@ - - + + - + + + + + + + + + + - + @@ -57,6 +75,16 @@ + + + + + + + + + + diff --git a/src/api/Globals.go b/src/api/Globals.go index 70b971c..26ffe9b 100644 --- a/src/api/Globals.go +++ b/src/api/Globals.go @@ -1,5 +1,5 @@ package api -const Version = "1.1.2" +const Version = "1.1.3" const KeychainService = "grifpkg" const KeychainHash = "session" \ No newline at end of file diff --git a/src/elements/project/Release.go b/src/elements/project/Release.go index dd48d7b..8dc4535 100644 --- a/src/elements/project/Release.go +++ b/src/elements/project/Release.go @@ -63,11 +63,31 @@ func (release Release) ListSuggestions() (suggestions []urlSuggestion.UrlSuggest return suggestions, err } +func (_ Release) Get(id string) (release Release, err error){ + request, err := api.Request("resource/release/get/", map[string]interface{}{ + "release": id, + }, nil) + if err != nil { + return Release{}, err + } + err = json.NewDecoder(request).Decode(&release) + if err != nil { + return Release{}, err + } + return release, nil +} + func (release Release) GetDownloadable(suggestionIdFallback interface{}) (downloadableRelease DownloadableRelease, err error) { api.LogOne(api.Progress, "requesting downloadable release") downloadableRelease = DownloadableRelease{} + if release.HasSuggestions==nil { + updatedRelease, err := release.Get(release.Id) + if err != nil { + return DownloadableRelease{}, err + } + release.HasSuggestions=updatedRelease.HasSuggestions + } if release.HasSuggestions!=nil { - if release.HasSuggestions == true { suggestionList, err := release.ListSuggestions() if err!=nil {