checkpoint 3

This commit is contained in:
2025-08-25 05:43:38 -07:00
parent 1727435561
commit 8f0325f766
4 changed files with 49 additions and 24 deletions

View File

@@ -3,13 +3,13 @@ package sync
import (
"context"
"fmt"
"io"
"os"
"path/filepath"
"time"
"github.com/sstent/garminsync-go/internal/database"
"github.com/sstent/garminsync-go/internal/garmin"
"github.com/sstent/garminsync-go/internal/models"
"github.com/sstent/garminsync-go/internal/parser"
)
@@ -110,7 +110,7 @@ func (s *SyncService) syncActivity(activity *garmin.GarminActivity) error {
}
// Parse the file to extract additional metrics
metrics, err := parser.ParseFITData(fileData)
metrics, err := s.parseActivityFile(fileData, "fit")
if err != nil {
return fmt.Errorf("failed to parse activity file: %w", err)
}
@@ -135,6 +135,21 @@ func (s *SyncService) syncActivity(activity *garmin.GarminActivity) error {
return nil
}
func (s *SyncService) parseActivityFile(fileData []byte, fileType string) (*models.ActivityMetrics, error) {
switch fileType {
case "fit":
return parser.ParseFITData(fileData)
case "tcx":
// TODO: Implement TCX parsing
return nil, fmt.Errorf("TCX parsing not implemented yet")
case "gpx":
// TODO: Implement GPX parsing
return nil, fmt.Errorf("GPX parsing not implemented yet")
default:
return nil, fmt.Errorf("unsupported file type: %s", fileType)
}
}
func parseTime(timeStr string) time.Time {
// Garmin time format: "2023-08-15 12:30:45"
t, err := time.Parse("2006-01-02 15:04:05", timeStr)