48 lines
2.0 KiB
Go
48 lines
2.0 KiB
Go
package http
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"teletype_softwares/domain"
|
|
)
|
|
|
|
type APISoftwareController struct {
|
|
softwareService domain.SoftwareServiceInterface
|
|
}
|
|
|
|
func NewAPISoftwareController(software_service domain.SoftwareServiceInterface) *APISoftwareController {
|
|
return &APISoftwareController{softwareService: software_service}
|
|
}
|
|
|
|
func (c *APISoftwareController) Index(w http.ResponseWriter, r *http.Request) {
|
|
softwares, _ := c.softwareService.DetailedList()
|
|
|
|
for _, softwareShowData := range softwares.Softwares {
|
|
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/")
|
|
}
|
|
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/")
|
|
}
|
|
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/")
|
|
}
|
|
}
|
|
|
|
json.NewEncoder(w).Encode(softwares)
|
|
}
|