46 lines
941 B
Go
46 lines
941 B
Go
package transfer
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log/slog"
|
|
"mesh-drop/internal/config"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
func (s *Service) SaveHistory() {
|
|
configDir := config.GetConfigDir()
|
|
historyPath := filepath.Join(configDir, "history.json")
|
|
historyJson, err := json.Marshal(s.GetTransferList())
|
|
if err != nil {
|
|
return
|
|
}
|
|
file, err := os.OpenFile(historyPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer file.Close()
|
|
_, err = file.Write(historyJson)
|
|
if err != nil {
|
|
slog.Error("Failed to write history", "error", err)
|
|
}
|
|
}
|
|
|
|
func (s *Service) LoadHistory() {
|
|
configDir := config.GetConfigDir()
|
|
historyPath := filepath.Join(configDir, "history.json")
|
|
file, err := os.Open(historyPath)
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer file.Close()
|
|
var history []Transfer
|
|
err = json.NewDecoder(file).Decode(&history)
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, item := range history {
|
|
s.StoreTransferToList(&item)
|
|
}
|
|
}
|