local var name fixes
This commit is contained in:
+18
-18
@@ -18,31 +18,31 @@ func NewDomain() Domain {
|
||||
DB := mysql_utils.Init()
|
||||
MigrateGoDatabase(DB)
|
||||
|
||||
softwareRepository := &SoftwareRepository{db: DB}
|
||||
releaseRepository := &ReleaseRepository{db: DB}
|
||||
fileRepository := NewFileRepository()
|
||||
software_repository := &SoftwareRepository{db: DB}
|
||||
release_repository := &ReleaseRepository{db: DB}
|
||||
file_repository := NewFileRepository()
|
||||
|
||||
softwareService := NewSoftwareService(softwareRepository, releaseRepository)
|
||||
software_service := NewSoftwareService(software_repository, release_repository)
|
||||
|
||||
tic80Updater := NewSoftwareUpdaterTIC80Service(
|
||||
softwareRepository,
|
||||
releaseRepository,
|
||||
fileRepository,
|
||||
tic80_updater := NewSoftwareUpdaterTIC80Service(
|
||||
software_repository,
|
||||
release_repository,
|
||||
file_repository,
|
||||
)
|
||||
|
||||
softwareUpdaterService := NewSoftwareUpdaterService(tic80Updater)
|
||||
software_updater_service := NewSoftwareUpdaterService(tic80_updater)
|
||||
|
||||
downloadService := NewDownloadService(softwareRepository, releaseRepository)
|
||||
download_service := NewDownloadService(software_repository, release_repository)
|
||||
|
||||
fileService := NewFileService(fileRepository)
|
||||
file_service := NewFileService(file_repository)
|
||||
|
||||
return Domain{
|
||||
SoftwareRepository: softwareRepository,
|
||||
ReleaseRepository: releaseRepository,
|
||||
FileRepository: fileRepository,
|
||||
DownloadService: downloadService,
|
||||
SoftwareUpdaterService: softwareUpdaterService,
|
||||
SoftwareService: softwareService,
|
||||
FileService: fileService,
|
||||
SoftwareRepository: software_repository,
|
||||
ReleaseRepository: release_repository,
|
||||
FileRepository: file_repository,
|
||||
DownloadService: download_service,
|
||||
SoftwareUpdaterService: software_updater_service,
|
||||
SoftwareService: software_service,
|
||||
FileService: file_service,
|
||||
}
|
||||
}
|
||||
|
||||
+21
-21
@@ -13,8 +13,8 @@ type FileRepositoryInterface interface {
|
||||
FileExists(path string) bool
|
||||
CreateDir(path string) error
|
||||
DeleteFile(path string) error
|
||||
MoveFile(srcPath, destPath string) error
|
||||
UnzipFile(path, destPath string) error
|
||||
MoveFile(src_path, dest_path string) error
|
||||
UnzipFile(path, dest_path string) error
|
||||
}
|
||||
|
||||
type FileRepository struct {
|
||||
@@ -22,9 +22,9 @@ type FileRepository struct {
|
||||
}
|
||||
|
||||
func NewFileRepository() *FileRepository {
|
||||
fileContainerPath, _ := os.LookupEnv("FILE_CONTAINER_PATH")
|
||||
file_container_path, _ := os.LookupEnv("FILE_CONTAINER_PATH")
|
||||
return &FileRepository{
|
||||
fileContainerPath: fileContainerPath,
|
||||
fileContainerPath: file_container_path,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,45 +33,45 @@ func (fr *FileRepository) GetPath(path string) string {
|
||||
}
|
||||
|
||||
func (fr *FileRepository) FileExists(path string) bool {
|
||||
fullPath := fr.GetPath(path)
|
||||
_, err := os.Stat(fullPath)
|
||||
full_path := fr.GetPath(path)
|
||||
_, err := os.Stat(full_path)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func (fr *FileRepository) CreateDir(path string) error {
|
||||
fullPath := fr.GetPath(path)
|
||||
return os.MkdirAll(fullPath, 0755)
|
||||
full_path := fr.GetPath(path)
|
||||
return os.MkdirAll(full_path, 0755)
|
||||
}
|
||||
|
||||
func (fr *FileRepository) DeleteFile(path string) error {
|
||||
fullPath := fr.GetPath(path)
|
||||
return os.RemoveAll(fullPath)
|
||||
full_path := fr.GetPath(path)
|
||||
return os.RemoveAll(full_path)
|
||||
}
|
||||
|
||||
func (fr *FileRepository) MoveFile(srcPath, destPath string) error {
|
||||
fullSrcPath := fr.GetPath(srcPath)
|
||||
fullDestPath := fr.GetPath(destPath)
|
||||
func (fr *FileRepository) MoveFile(src_path, dest_path string) error {
|
||||
full_src_path := fr.GetPath(src_path)
|
||||
full_dest_path := fr.GetPath(dest_path)
|
||||
|
||||
destDir := filepath.Dir(fullDestPath)
|
||||
if err := os.MkdirAll(destDir, 0755); err != nil {
|
||||
dest_dir := filepath.Dir(full_dest_path)
|
||||
if err := os.MkdirAll(dest_dir, 0755); err != nil {
|
||||
return fmt.Errorf("failed to create destination directory: %w", err)
|
||||
}
|
||||
|
||||
return os.Rename(fullSrcPath, fullDestPath)
|
||||
return os.Rename(full_src_path, full_dest_path)
|
||||
}
|
||||
|
||||
func (fr *FileRepository) UnzipFile(path, destPath string) error {
|
||||
fullPath := fr.GetPath(path)
|
||||
fullDestPath := fr.GetPath(destPath)
|
||||
func (fr *FileRepository) UnzipFile(path, dest_path string) error {
|
||||
full_path := fr.GetPath(path)
|
||||
full_dest_path := fr.GetPath(dest_path)
|
||||
|
||||
r, err := zip.OpenReader(fullPath)
|
||||
r, err := zip.OpenReader(full_path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer r.Close()
|
||||
|
||||
for _, f := range r.File {
|
||||
path := filepath.Join(fullDestPath, f.Name)
|
||||
path := filepath.Join(full_dest_path, f.Name)
|
||||
fmt.Printf("ZIP: Extracting %s\n", path)
|
||||
|
||||
if f.FileInfo().IsDir() {
|
||||
|
||||
@@ -5,9 +5,9 @@ import "gorm.io/gorm"
|
||||
type ReleaseRepositoryInterface interface {
|
||||
Create(release *Release) error
|
||||
CreateIfNotExist(release *Release) error
|
||||
FindLatestBySoftwareID(softwareID uint) (*Release, error)
|
||||
FindBySoftwareIDAndVersion(softwareID uint, version string) (*Release, error)
|
||||
ListBySoftwareID(softwareID uint) []Release
|
||||
FindLatestBySoftwareID(software_id uint) (*Release, error)
|
||||
FindBySoftwareIDAndVersion(software_id uint, version string) (*Release, error)
|
||||
ListBySoftwareID(software_id uint) []Release
|
||||
}
|
||||
|
||||
type ReleaseRepository struct {
|
||||
@@ -30,20 +30,20 @@ func (r *ReleaseRepository) CreateIfNotExist(release *Release) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *ReleaseRepository) FindLatestBySoftwareID(softwareID uint) (*Release, error) {
|
||||
func (r *ReleaseRepository) FindLatestBySoftwareID(software_id uint) (*Release, error) {
|
||||
var release Release
|
||||
err := r.db.Where("software_id = ?", softwareID).Order("created_at desc").First(&release).Error
|
||||
err := r.db.Where("software_id = ?", software_id).Order("created_at desc").First(&release).Error
|
||||
return &release, err
|
||||
}
|
||||
|
||||
func (r *ReleaseRepository) FindBySoftwareIDAndVersion(softwareID uint, version string) (*Release, error) {
|
||||
func (r *ReleaseRepository) FindBySoftwareIDAndVersion(software_id uint, version string) (*Release, error) {
|
||||
var release Release
|
||||
err := r.db.Where("software_id = ? AND version = ?", softwareID, version).First(&release).Error
|
||||
err := r.db.Where("software_id = ? AND version = ?", software_id, version).First(&release).Error
|
||||
return &release, err
|
||||
}
|
||||
|
||||
func (r *ReleaseRepository) ListBySoftwareID(softwareID uint) []Release {
|
||||
func (r *ReleaseRepository) ListBySoftwareID(software_id uint) []Release {
|
||||
var releases []Release
|
||||
r.db.Where("software_id = ?", softwareID).Find(&releases)
|
||||
r.db.Where("software_id = ?", software_id).Find(&releases)
|
||||
return releases
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ var (
|
||||
)
|
||||
|
||||
type DownloadServiceInterface interface {
|
||||
GetLatestRelease(softwareName string) (*Release, error)
|
||||
GetSpecificRelease(softwareName string, version string) (*Release, error)
|
||||
GetLatestRelease(software_name string) (*Release, error)
|
||||
GetSpecificRelease(software_name string, version string) (*Release, error)
|
||||
}
|
||||
|
||||
type DownloadService struct {
|
||||
@@ -20,15 +20,15 @@ type DownloadService struct {
|
||||
releaseRepository ReleaseRepositoryInterface
|
||||
}
|
||||
|
||||
func NewDownloadService(softwareRepository SoftwareRepositoryInterface, releaseRepository ReleaseRepositoryInterface) *DownloadService {
|
||||
func NewDownloadService(software_repository SoftwareRepositoryInterface, release_repository ReleaseRepositoryInterface) *DownloadService {
|
||||
return &DownloadService{
|
||||
softwareRepository: softwareRepository,
|
||||
releaseRepository: releaseRepository,
|
||||
softwareRepository: software_repository,
|
||||
releaseRepository: release_repository,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DownloadService) GetLatestRelease(softwareName string) (*Release, error) {
|
||||
software, err := s.softwareRepository.GetByName(softwareName)
|
||||
func (s *DownloadService) GetLatestRelease(software_name string) (*Release, error) {
|
||||
software, err := s.softwareRepository.GetByName(software_name)
|
||||
if err != nil {
|
||||
return nil, ErrSoftwareNotFound
|
||||
}
|
||||
@@ -41,8 +41,8 @@ func (s *DownloadService) GetLatestRelease(softwareName string) (*Release, error
|
||||
return release, nil
|
||||
}
|
||||
|
||||
func (s *DownloadService) GetSpecificRelease(softwareName string, version string) (*Release, error) {
|
||||
software, err := s.softwareRepository.GetByName(softwareName)
|
||||
func (s *DownloadService) GetSpecificRelease(software_name string, version string) (*Release, error) {
|
||||
software, err := s.softwareRepository.GetByName(software_name)
|
||||
if err != nil {
|
||||
return nil, ErrSoftwareNotFound
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ type SoftwareShowData struct {
|
||||
type SoftwareServiceInterface interface {
|
||||
List() ([]SoftwareListDTO, error)
|
||||
GetByName(name string) (*Software, error)
|
||||
GetLatestRelease(softwareID string) (*Release, error)
|
||||
GetLatestRelease(software_id string) (*Release, error)
|
||||
GetForShowByName(name string) (*SoftwareShowData, error)
|
||||
}
|
||||
|
||||
@@ -100,8 +100,8 @@ func (s *SoftwareService) GetForShowByName(name string) (*SoftwareShowData, erro
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *SoftwareService) GetLatestRelease(softwareID string) (*Release, error) {
|
||||
software, err := s.softeare_repository.GetByName(softwareID)
|
||||
func (s *SoftwareService) GetLatestRelease(software_id string) (*Release, error) {
|
||||
software, err := s.softeare_repository.GetByName(software_id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ type SoftwareUpdaterService struct {
|
||||
tic80Updater SoftwareUpdaterTIC80ServiceInterface
|
||||
}
|
||||
|
||||
func NewSoftwareUpdaterService(tic80Updater SoftwareUpdaterTIC80ServiceInterface) *SoftwareUpdaterService {
|
||||
return &SoftwareUpdaterService{tic80Updater: tic80Updater}
|
||||
func NewSoftwareUpdaterService(tic80_updater SoftwareUpdaterTIC80ServiceInterface) *SoftwareUpdaterService {
|
||||
return &SoftwareUpdaterService{tic80Updater: tic80_updater}
|
||||
}
|
||||
|
||||
func (s *SoftwareUpdaterService) Update(platform, name, version string) error {
|
||||
|
||||
@@ -18,14 +18,14 @@ type SoftwareUpdaterTIC80Service struct {
|
||||
}
|
||||
|
||||
func NewSoftwareUpdaterTIC80Service(
|
||||
softwareRepository SoftwareRepositoryInterface,
|
||||
releaseRepository ReleaseRepositoryInterface,
|
||||
fileRepository FileRepositoryInterface,
|
||||
software_repository SoftwareRepositoryInterface,
|
||||
release_repository ReleaseRepositoryInterface,
|
||||
file_repository FileRepositoryInterface,
|
||||
) *SoftwareUpdaterTIC80Service {
|
||||
return &SoftwareUpdaterTIC80Service{
|
||||
softwareRepository: softwareRepository,
|
||||
releaseRepository: releaseRepository,
|
||||
fileRepository: fileRepository,
|
||||
softwareRepository: software_repository,
|
||||
releaseRepository: release_repository,
|
||||
fileRepository: file_repository,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,12 +44,12 @@ func (s *SoftwareUpdaterTIC80Service) Update(name, version string) error {
|
||||
|
||||
var err error
|
||||
|
||||
metaData, err := s.GetMetadata(source_path)
|
||||
meta_data, err := s.GetMetadata(source_path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
software := s.BuildSoftware(metaData)
|
||||
software := s.BuildSoftware(meta_data)
|
||||
|
||||
err = s.softwareRepository.UpdateOrCreate(software)
|
||||
if err != nil {
|
||||
@@ -84,15 +84,15 @@ func (s *SoftwareUpdaterTIC80Service) BuildSoftware(metadata map[string]string)
|
||||
return software
|
||||
}
|
||||
|
||||
func (s *SoftwareUpdaterTIC80Service) GetMetadata(sourcePath string) (map[string]string, error) {
|
||||
func (s *SoftwareUpdaterTIC80Service) GetMetadata(source_path string) (map[string]string, error) {
|
||||
|
||||
file, err := os.Open(sourcePath)
|
||||
file, err := os.Open(source_path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
metaData := make(map[string]string)
|
||||
meta_data := make(map[string]string)
|
||||
scanner := bufio.NewScanner(file)
|
||||
|
||||
for scanner.Scan() {
|
||||
@@ -104,7 +104,7 @@ func (s *SoftwareUpdaterTIC80Service) GetMetadata(sourcePath string) (map[string
|
||||
}
|
||||
key := strings.TrimSpace(parts[0])
|
||||
val := strings.TrimSpace(parts[1])
|
||||
metaData[strings.ToLower(key)] = val
|
||||
meta_data[strings.ToLower(key)] = val
|
||||
} else {
|
||||
break
|
||||
}
|
||||
@@ -114,5 +114,5 @@ func (s *SoftwareUpdaterTIC80Service) GetMetadata(sourcePath string) (map[string
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return metaData, nil
|
||||
return meta_data, nil
|
||||
}
|
||||
|
||||
+10
-10
@@ -19,33 +19,33 @@ func NewDownloadController(service domain.DownloadServiceInterface) *DownloadCon
|
||||
return &DownloadController{service: service}
|
||||
}
|
||||
|
||||
func (c *DownloadController) serve(w http.ResponseWriter, r *http.Request, release *domain.Release, isSource bool) {
|
||||
var filePath string
|
||||
if isSource {
|
||||
filePath = release.SourcePath
|
||||
func (c *DownloadController) serve(w http.ResponseWriter, r *http.Request, release *domain.Release, is_source bool) {
|
||||
var file_path string
|
||||
if is_source {
|
||||
file_path = release.SourcePath
|
||||
} else {
|
||||
filePath = release.CartridgePath
|
||||
file_path = release.CartridgePath
|
||||
}
|
||||
|
||||
absFilePath, err := filepath.Abs(filePath)
|
||||
abs_file_path, err := filepath.Abs(file_path)
|
||||
if err != nil {
|
||||
http.Error(w, "Invalid file path", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
absContentsDir, err := filepath.Abs(os.Getenv("FILE_CONTAINER_PATH"))
|
||||
abs_contents_dir, err := filepath.Abs(os.Getenv("FILE_CONTAINER_PATH"))
|
||||
if err != nil {
|
||||
http.Error(w, "Invalid contents directory path", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
if !strings.HasPrefix(absFilePath, absContentsDir) {
|
||||
if !strings.HasPrefix(abs_file_path, abs_contents_dir) {
|
||||
http.Error(w, "Access denied", http.StatusForbidden)
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(filePath))
|
||||
http.ServeFile(w, r, filePath)
|
||||
w.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(file_path))
|
||||
http.ServeFile(w, r, file_path)
|
||||
}
|
||||
|
||||
func (c *DownloadController) handleError(w http.ResponseWriter, err error) {
|
||||
|
||||
@@ -15,10 +15,10 @@ type PlayController struct {
|
||||
fileService domain.FileServiceInterface
|
||||
}
|
||||
|
||||
func NewPlayController(softwareService domain.SoftwareServiceInterface, fileService domain.FileServiceInterface) *PlayController {
|
||||
func NewPlayController(software_service domain.SoftwareServiceInterface, file_service domain.FileServiceInterface) *PlayController {
|
||||
return &PlayController{
|
||||
softwareService: softwareService,
|
||||
fileService: fileService,
|
||||
softwareService: software_service,
|
||||
fileService: file_service,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,15 +36,15 @@ func (c *PlayController) Play(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
var webPlayableRelease *domain.Release
|
||||
var web_playable_release *domain.Release
|
||||
for _, release := range software.Releases {
|
||||
if release.Version == version && release.HTMLFolderPath != "" {
|
||||
webPlayableRelease = &release
|
||||
web_playable_release = &release
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if webPlayableRelease == nil {
|
||||
if web_playable_release == nil {
|
||||
http.Error(w, "No web-playable version found for this software", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
@@ -57,7 +57,7 @@ func (c *PlayController) Play(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
tmpl.Execute(w, map[string]interface{}{
|
||||
"Software": software,
|
||||
"WebPlayableRelease": webPlayableRelease,
|
||||
"WebPlayableRelease": web_playable_release,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -5,12 +5,12 @@ import (
|
||||
"teletype_softwares/lib/http_utils"
|
||||
)
|
||||
|
||||
func StartHttpServer(domainInstance domain.Domain) {
|
||||
func StartHttpServer(domain_instance domain.Domain) {
|
||||
router := NewRouter(
|
||||
NewSoftwareController(domainInstance.SoftwareService),
|
||||
NewSoftwareUpdaterController(domainInstance.SoftwareUpdaterService),
|
||||
NewDownloadController(domainInstance.DownloadService),
|
||||
NewPlayController(domainInstance.SoftwareService, domainInstance.FileService),
|
||||
NewSoftwareController(domain_instance.SoftwareService),
|
||||
NewSoftwareUpdaterController(domain_instance.SoftwareUpdaterService),
|
||||
NewDownloadController(domain_instance.DownloadService),
|
||||
NewPlayController(domain_instance.SoftwareService, domain_instance.FileService),
|
||||
NewRootController(),
|
||||
).Init()
|
||||
|
||||
|
||||
+10
-10
@@ -15,18 +15,18 @@ type Router struct {
|
||||
}
|
||||
|
||||
func NewRouter(
|
||||
softwareController *SoftwareController,
|
||||
softwareUpdaterController *SoftwareUpdaterController,
|
||||
downloadController *DownloadController,
|
||||
playController *PlayController,
|
||||
rootController *RootController,
|
||||
software_controller *SoftwareController,
|
||||
software_updater_controller *SoftwareUpdaterController,
|
||||
download_controller *DownloadController,
|
||||
play_controller *PlayController,
|
||||
root_controller *RootController,
|
||||
) *Router {
|
||||
return &Router{
|
||||
softwareController: softwareController,
|
||||
softwareUpdaterController: softwareUpdaterController,
|
||||
downloadController: downloadController,
|
||||
playController: playController,
|
||||
rootController: rootController,
|
||||
softwareController: software_controller,
|
||||
softwareUpdaterController: software_updater_controller,
|
||||
downloadController: download_controller,
|
||||
playController: play_controller,
|
||||
rootController: root_controller,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user