timetable-extension #1
@ -5,7 +5,7 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Version Constants
 | 
			
		||||
const versionNum string = "2024.10.1"
 | 
			
		||||
const versionNum string = "2024.10.2"
 | 
			
		||||
const versionSuffix string = ""
 | 
			
		||||
const Version string = versionNum + versionSuffix
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								pis/data.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								pis/data.go
									
									
									
									
									
								
							@ -14,21 +14,27 @@ import (
 | 
			
		||||
 | 
			
		||||
// Process the YAML data to a struct
 | 
			
		||||
func processYaml(yamlStr string) (*[]database.PIS, error) {
 | 
			
		||||
	var pis []PisData
 | 
			
		||||
	// Define 'container' struct
 | 
			
		||||
	var pisData struct {
 | 
			
		||||
		Pis []PisData `yaml:"pis"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Unmarshal the YAML data into a slice of PisData
 | 
			
		||||
	err := yaml.Unmarshal([]byte(yamlStr), &pis)
 | 
			
		||||
	// Unmarshal the YAML data into the structure
 | 
			
		||||
	err := yaml.Unmarshal([]byte(yamlStr), &pisData)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("failed to unmarshal YAML: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Perform deduplication on the entire pis slice
 | 
			
		||||
	err = deduplicateCodes(&pis)
 | 
			
		||||
	err = deduplicateCodes(&pisData.Pis)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	documents, err := convertPisForDatabase(&pis)
 | 
			
		||||
	documents, err := convertPisForDatabase(&pisData.Pis)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return documents, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,9 @@ import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"git.fjla.uk/owlboard/timetable-mgr/log"
 | 
			
		||||
	"go.uber.org/zap"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@ -127,7 +130,7 @@ func extractFiles(gzipStream io.Reader, dest string) error {
 | 
			
		||||
			}
 | 
			
		||||
			outFile.Close()
 | 
			
		||||
		default:
 | 
			
		||||
			fmt.Printf("Unable to handle filetype %c in %s\n", header.Typeflag, header.Name)
 | 
			
		||||
			log.Warn("Unable to handle filetype", zap.String("Typeflag", string(header.Typeflag)), zap.String("Filename", header.Name))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
@ -145,7 +148,7 @@ func extractYamlData(dir string) (string, error) {
 | 
			
		||||
		// Check if the path contains 'pis' and has a .yaml or .yml extension
 | 
			
		||||
		if strings.Contains(path, "/pis/") && !info.IsDir() &&
 | 
			
		||||
			(strings.HasSuffix(info.Name(), ".yaml") || strings.HasSuffix(info.Name(), ".yml")) {
 | 
			
		||||
			fmt.Printf("Processing YAML file in 'pis' directory: %s\n", path)
 | 
			
		||||
			log.Debug("Processing YAML", zap.String("directory", path))
 | 
			
		||||
 | 
			
		||||
			file, err := os.Open(path)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
@ -179,7 +182,7 @@ func cleanupFiles(paths ...string) {
 | 
			
		||||
	for _, path := range paths {
 | 
			
		||||
		err := os.RemoveAll(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Printf("Error removing %s: %v\n", path, err)
 | 
			
		||||
			log.Warn("Error removing file", zap.String("path", path), zap.Error(err))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user