This commit is contained in:
2026-03-01 20:47:24 +01:00
parent 2f5b5013eb
commit cd8745390d
3 changed files with 22 additions and 23 deletions
+1 -1
View File
@@ -11,5 +11,5 @@ type Software struct {
Site string `gorm:"size:255" json:"site"`
License string `gorm:"size:128" json:"license"`
Platform string `gorm:"size:128" json:"platform"`
Releases []Release `json:"releases"`
Releases []Release `json:"-"`
}
+5 -6
View File
@@ -67,7 +67,6 @@ func (s *SoftwareService) List() ([]SoftwareListDTO, error) {
func (s *SoftwareService) GetByName(name string) (*Software, error) {
return s.softeare_repository.GetByName(name)
}
func (s *SoftwareService) GetForShowByName(name string) (*SoftwareShowData, error) {
@@ -89,10 +88,10 @@ func (s *SoftwareService) GetForShowByName(name string) (*SoftwareShowData, erro
latest_release = &releases[0]
}
var web_payable_release *Release
for _, release := range releases {
if release.HTMLFolderPath != "" {
web_payable_release = &release
var web_playable_release *Release
for i := range releases {
if releases[i].HTMLFolderPath != "" {
web_playable_release = &releases[i] // fix: slice elem címe, nem a loop változóé
break
}
}
@@ -101,7 +100,7 @@ func (s *SoftwareService) GetForShowByName(name string) (*SoftwareShowData, erro
Software: software,
Releases: releases,
LatestRelease: latest_release,
WebPlayableRelease: web_payable_release,
WebPlayableRelease: web_playable_release,
}, nil
}
+16 -16
View File
@@ -16,30 +16,30 @@ func NewAPISoftwareController(software_service domain.SoftwareServiceInterface)
return &APISoftwareController{softwareService: software_service}
}
func replaceReleasePaths(release *domain.Release) {
release.CartridgePath = strings.ReplaceAll(release.CartridgePath, "/softwares/", "/file/")
release.SourcePath = strings.ReplaceAll(release.SourcePath, "/softwares/", "/file/")
release.HTMLFolderPath = strings.ReplaceAll(release.HTMLFolderPath, "/softwares/", "/file/")
release.DocsFolderPath = strings.ReplaceAll(release.DocsFolderPath, "/softwares/", "/file/")
}
func (c *APISoftwareController) Index(w http.ResponseWriter, r *http.Request) {
softwares, _ := c.softwareService.DetailedList()
for _, softwareShowData := range softwares.Softwares {
for idx := range softwares.Softwares {
softwareShowData := &softwares.Softwares[idx]
for i := range softwareShowData.Releases {
release := &softwareShowData.Releases[i]
release.CartridgePath = strings.ReplaceAll(release.CartridgePath, "/softwares/", "/file/")
release.SourcePath = strings.ReplaceAll(release.SourcePath, "/softwares/", "/file/")
release.HTMLFolderPath = strings.ReplaceAll(release.HTMLFolderPath, "/softwares/", "/file/")
release.DocsFolderPath = strings.ReplaceAll(release.DocsFolderPath, "/softwares/", "/file/")
replaceReleasePaths(&softwareShowData.Releases[i])
}
// LatestRelease és WebPlayableRelease a Releases slice elemeire mutat,
// ezért ezeket külön is frissíteni kell, mivel értékmásolat kerülhet bele
if softwareShowData.LatestRelease != nil {
release := softwareShowData.LatestRelease
release.CartridgePath = strings.ReplaceAll(release.CartridgePath, "/softwares/", "/file/")
release.SourcePath = strings.ReplaceAll(release.SourcePath, "/softwares/", "/file/")
release.HTMLFolderPath = strings.ReplaceAll(release.HTMLFolderPath, "/softwares/", "/file/")
release.DocsFolderPath = strings.ReplaceAll(release.DocsFolderPath, "/softwares/", "/file/")
replaceReleasePaths(softwareShowData.LatestRelease)
}
if softwareShowData.WebPlayableRelease != nil {
release := softwareShowData.WebPlayableRelease
release.CartridgePath = strings.ReplaceAll(release.CartridgePath, "/softwares/", "/file/")
release.SourcePath = strings.ReplaceAll(release.SourcePath, "/softwares/", "/file/")
release.HTMLFolderPath = strings.ReplaceAll(release.HTMLFolderPath, "/softwares/", "/file/")
release.DocsFolderPath = strings.ReplaceAll(release.DocsFolderPath, "/softwares/", "/file/")
replaceReleasePaths(softwareShowData.WebPlayableRelease)
}
}