diff --git a/domain/domain.go b/domain/domain.go index c93c64d..dc52a47 100755 --- a/domain/domain.go +++ b/domain/domain.go @@ -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, } } diff --git a/domain/repository.file.go b/domain/repository.file.go index 352566d..3730c0b 100644 --- a/domain/repository.file.go +++ b/domain/repository.file.go @@ -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() { diff --git a/domain/repository.release.go b/domain/repository.release.go index 14f983f..3a227ea 100644 --- a/domain/repository.release.go +++ b/domain/repository.release.go @@ -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 } diff --git a/domain/service.download.go b/domain/service.download.go index 723f845..f0ca7c9 100644 --- a/domain/service.download.go +++ b/domain/service.download.go @@ -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 } diff --git a/domain/service.software.go b/domain/service.software.go index c9a818b..7257a35 100644 --- a/domain/service.software.go +++ b/domain/service.software.go @@ -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 } diff --git a/domain/service.software_updater.go b/domain/service.software_updater.go index ce3cd77..23387b4 100644 --- a/domain/service.software_updater.go +++ b/domain/service.software_updater.go @@ -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 { diff --git a/domain/service.software_updater_tic80.go b/domain/service.software_updater_tic80.go index 05ecbb8..d8b6ae5 100644 --- a/domain/service.software_updater_tic80.go +++ b/domain/service.software_updater_tic80.go @@ -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 } diff --git a/http/controller.download.go b/http/controller.download.go index d02a4d9..8a4041f 100644 --- a/http/controller.download.go +++ b/http/controller.download.go @@ -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) { diff --git a/http/controller.play.go b/http/controller.play.go index 7b76d47..a1ba78f 100644 --- a/http/controller.play.go +++ b/http/controller.play.go @@ -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, }) } diff --git a/http/http.go b/http/http.go index 6eaffee..93dbd2f 100755 --- a/http/http.go +++ b/http/http.go @@ -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() diff --git a/http/router.go b/http/router.go index 0ebbf1b..576dd48 100755 --- a/http/router.go +++ b/http/router.go @@ -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, } }