|
package utils |
|
|
|
import ( |
|
"encoding/json" |
|
"os" |
|
"path/filepath" |
|
|
|
"github.com/rs/zerolog/log" |
|
) |
|
|
|
func SaveConfig(filePath, fileName string, obj any) { |
|
file, err := json.MarshalIndent(obj, "", " ") |
|
if err != nil { |
|
log.Error().Err(err).Msg("failed to JSON marshal the uploadedFiles") |
|
} |
|
|
|
absolutePath := filepath.Join(filePath, fileName) |
|
err = os.WriteFile(absolutePath, file, 0600) |
|
if err != nil { |
|
log.Error().Err(err).Str("filepath", absolutePath).Msg("failed to save configuration file") |
|
} |
|
} |
|
|
|
func LoadConfig(filePath, fileName string, obj interface{}) { |
|
uploadFilePath := filepath.Join(filePath, fileName) |
|
|
|
_, err := os.Stat(uploadFilePath) |
|
if os.IsNotExist(err) { |
|
log.Debug().Msgf("No configuration file found at %s", uploadFilePath) |
|
return |
|
} |
|
|
|
file, err := os.ReadFile(uploadFilePath) |
|
if err != nil { |
|
log.Error().Err(err).Str("filepath", uploadFilePath).Msg("failed to read file") |
|
} else { |
|
err = json.Unmarshal(file, &obj) |
|
if err != nil { |
|
log.Error().Err(err).Str("filepath", uploadFilePath).Msg("failed to parse file as JSON") |
|
} |
|
} |
|
} |
|
|