Replace writable parts of config with database (#40)

This commit is contained in:
Marc Ole Bulling
2022-01-20 23:52:34 +01:00
committed by GitHub
parent 2fbf9ad579
commit 3766c9257f
31 changed files with 1790 additions and 890 deletions
+10 -13
View File
@@ -2,6 +2,7 @@ package fileupload
import (
"Gokapi/internal/configuration"
"Gokapi/internal/configuration/dataStorage"
"Gokapi/internal/helper"
"Gokapi/internal/models"
"Gokapi/internal/storage"
@@ -45,31 +46,27 @@ func parseConfig(values formOrHeader, setNewDefaults bool) models.UploadRequest
expiryDays := values.Get("expiryDays")
password := values.Get("password")
allowedDownloadsInt, err := strconv.Atoi(allowedDownloads)
settings := configuration.GetServerSettings()
if err != nil {
allowedDownloadsInt = settings.DefaultDownloads
previous, _, _ := dataStorage.GetUploadDefaults()
allowedDownloadsInt = previous
}
expiryDaysInt, err := strconv.Atoi(expiryDays)
if err != nil {
expiryDaysInt = settings.DefaultExpiry
_, previous, _ := dataStorage.GetUploadDefaults()
expiryDaysInt = previous
}
if setNewDefaults {
settings.DefaultExpiry = expiryDaysInt
settings.DefaultDownloads = allowedDownloadsInt
settings.DefaultPassword = password
dataStorage.SaveUploadDefaults(allowedDownloadsInt, expiryDaysInt, password)
}
externalUrl := settings.ServerUrl
dataDir := settings.DataDir
maxMemory := settings.MaxMemory
configuration.Release()
settings := configuration.Get()
return models.UploadRequest{
AllowedDownloads: allowedDownloadsInt,
Expiry: expiryDaysInt,
ExpiryTimestamp: time.Now().Add(time.Duration(expiryDaysInt) * time.Hour * 24).Unix(),
Password: password,
ExternalUrl: externalUrl,
MaxMemory: maxMemory,
DataDir: dataDir,
ExternalUrl: settings.ServerUrl,
MaxMemory: settings.MaxMemory,
DataDir: settings.DataDir,
}
}
@@ -5,6 +5,7 @@ package fileupload
import (
"Gokapi/internal/configuration"
"Gokapi/internal/configuration/dataStorage"
"Gokapi/internal/models"
"Gokapi/internal/test"
"Gokapi/internal/test/testconfiguration"
@@ -28,22 +29,22 @@ func TestMain(m *testing.M) {
}
func TestParseConfig(t *testing.T) {
settings := configuration.GetServerSettings()
configuration.Release()
data := testData{
allowedDownloads: "9",
expiryDays: "5",
password: "123",
}
config := parseConfig(data, false)
downloads, _, _ := dataStorage.GetUploadDefaults()
test.IsEqualInt(t, config.AllowedDownloads, 9)
test.IsEqualString(t, config.Password, "123")
test.IsEqualInt(t, config.Expiry, 5)
test.IsEqualInt(t, settings.DefaultDownloads, 3)
test.IsEqualInt(t, downloads, 3)
config = parseConfig(data, true)
test.IsEqualInt(t, settings.DefaultDownloads, 9)
settings.DefaultDownloads = 3
settings.DefaultExpiry = 20
downloads, _, _ = dataStorage.GetUploadDefaults()
test.IsEqualInt(t, downloads, 9)
dataStorage.SaveUploadDefaults(3, 20, "")
data.allowedDownloads = ""
data.expiryDays = "invalid"
config = parseConfig(data, false)