mirror of
https://github.com/Forceu/Gokapi.git
synced 2026-04-28 10:10:32 -05:00
Refactor: Rename datastorage to database
This commit is contained in:
+2
-2
@@ -9,7 +9,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/cloudconfig"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/configuration/setup"
|
||||
"github.com/forceu/gokapi/internal/encryption"
|
||||
"github.com/forceu/gokapi/internal/environment"
|
||||
@@ -65,7 +65,7 @@ func main() {
|
||||
func shutdown() {
|
||||
fmt.Println("Shutting down...")
|
||||
webserver.Shutdown()
|
||||
datastorage.Close()
|
||||
database.Close()
|
||||
}
|
||||
|
||||
// Checks for command line arguments that have to be parsed before loading the configuration
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/forceu/gokapi/internal/configuration/cloudconfig"
|
||||
"github.com/forceu/gokapi/internal/configuration/configupgrade"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/environment"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
log "github.com/forceu/gokapi/internal/logging"
|
||||
@@ -51,7 +51,7 @@ func Load() {
|
||||
err = decoder.Decode(&serverSettings)
|
||||
helper.Check(err)
|
||||
file.Close()
|
||||
datastorage.Init(Environment.FileDbPath)
|
||||
database.Init(Environment.FileDbPath)
|
||||
if configupgrade.DoUpgrade(&serverSettings, &Environment) {
|
||||
save()
|
||||
}
|
||||
@@ -97,7 +97,7 @@ func LoadFromSetup(config models.Configuration, cloudConfig *cloudconfig.CloudCo
|
||||
helper.CreateDir(Environment.ConfigDir)
|
||||
if !isInitialSetup {
|
||||
Load()
|
||||
datastorage.DeleteAllSessions()
|
||||
database.DeleteAllSessions()
|
||||
}
|
||||
|
||||
serverSettings = config
|
||||
|
||||
@@ -3,7 +3,7 @@ package configupgrade
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/environment"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
@@ -65,19 +65,19 @@ func updateConfig(settings *models.Configuration, env *environment.Environment)
|
||||
TimeExpiry: legacyConfig.DefaultExpiry,
|
||||
Password: legacyConfig.DefaultPassword,
|
||||
}
|
||||
datastorage.SaveUploadDefaults(uploadValues)
|
||||
database.SaveUploadDefaults(uploadValues)
|
||||
|
||||
for _, hotlink := range legacyConfig.Hotlinks {
|
||||
datastorage.SaveHotlink(models.File{Id: hotlink.FileId, HotlinkId: hotlink.Id})
|
||||
database.SaveHotlink(models.File{Id: hotlink.FileId, HotlinkId: hotlink.Id})
|
||||
}
|
||||
for _, apikey := range legacyConfig.ApiKeys {
|
||||
datastorage.SaveApiKey(apikey, false)
|
||||
database.SaveApiKey(apikey, false)
|
||||
}
|
||||
for _, file := range legacyConfig.Files {
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
}
|
||||
for key, session := range legacyConfig.Sessions {
|
||||
datastorage.SaveSession(key, session, 48*time.Hour)
|
||||
database.SaveSession(key, session, 48*time.Hour)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package configupgrade
|
||||
|
||||
import (
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/environment"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
@@ -38,7 +38,7 @@ func TestUpgradeDb(t *testing.T) {
|
||||
test.IsEqualBool(t, wasExit, true)
|
||||
|
||||
oldConfigFile.ConfigVersion = 8
|
||||
datastorage.Init("./test/filestorage.db")
|
||||
database.Init("./test/filestorage.db")
|
||||
testconfiguration.WriteUpgradeConfigFileV8()
|
||||
upgradeDone := DoUpgrade(&oldConfigFile, &env)
|
||||
test.IsEqualBool(t, upgradeDone, true)
|
||||
|
||||
+31
-31
@@ -1,4 +1,4 @@
|
||||
package datastorage
|
||||
package database
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -21,16 +21,16 @@ const idLastUploadConfig = "default:lastupload"
|
||||
|
||||
const maxKeySize = 96
|
||||
|
||||
var database *bitcask.Bitcask
|
||||
var bitcaskDb *bitcask.Bitcask
|
||||
|
||||
// Init creates the database files and connects to it
|
||||
func Init(dbPath string) {
|
||||
if database == nil {
|
||||
if bitcaskDb == nil {
|
||||
db, err := bitcask.Open(dbPath, bitcask.WithMaxKeySize(maxKeySize))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
database = db
|
||||
bitcaskDb = db
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,31 +46,31 @@ func GetLengthAvailable() int {
|
||||
return maxKeySize - maxLength
|
||||
}
|
||||
|
||||
// Close syncs the database to the filesystem and closes it
|
||||
// Close syncs the bitcaskDb to the filesystem and closes it
|
||||
func Close() {
|
||||
if database != nil {
|
||||
err := database.Sync()
|
||||
if bitcaskDb != nil {
|
||||
err := bitcaskDb.Sync()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
err = database.Close()
|
||||
err = bitcaskDb.Close()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
database = nil
|
||||
bitcaskDb = nil
|
||||
}
|
||||
|
||||
// ## File Metadata ##
|
||||
|
||||
// GetAllMetadata returns a map of all available files
|
||||
func GetAllMetadata() map[string]models.File {
|
||||
if database == nil {
|
||||
if bitcaskDb == nil {
|
||||
panic("Database not loaded!")
|
||||
}
|
||||
result := make(map[string]models.File)
|
||||
var keys []string
|
||||
err := database.Scan([]byte(prefixFile), func(key []byte) error {
|
||||
err := bitcaskDb.Scan([]byte(prefixFile), func(key []byte) error {
|
||||
fileId := strings.Replace(string(key), prefixFile, "", 1)
|
||||
keys = append(keys, fileId)
|
||||
return nil
|
||||
@@ -108,9 +108,9 @@ func SaveMetaData(file models.File) {
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(file)
|
||||
helper.Check(err)
|
||||
err = database.Put([]byte(prefixFile+file.Id), buf.Bytes())
|
||||
err = bitcaskDb.Put([]byte(prefixFile+file.Id), buf.Bytes())
|
||||
helper.Check(err)
|
||||
err = database.Sync()
|
||||
err = bitcaskDb.Sync()
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
@@ -130,11 +130,11 @@ func GetHotlink(id string) (string, bool) {
|
||||
return string(value), true
|
||||
}
|
||||
|
||||
// SaveHotlink stores the hotlink associated with the file in the database
|
||||
// SaveHotlink stores the hotlink associated with the file in the bitcaskDb
|
||||
func SaveHotlink(file models.File) {
|
||||
err := database.PutWithTTL([]byte(prefixHotlink+file.HotlinkId), []byte(file.Id), expiryToDuration(file))
|
||||
err := bitcaskDb.PutWithTTL([]byte(prefixHotlink+file.HotlinkId), []byte(file.Id), expiryToDuration(file))
|
||||
helper.Check(err)
|
||||
err = database.Sync()
|
||||
err = bitcaskDb.Sync()
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ func DeleteHotlink(id string) {
|
||||
func GetAllApiKeys() map[string]models.ApiKey {
|
||||
result := make(map[string]models.ApiKey)
|
||||
var keys []string
|
||||
err := database.Scan([]byte(prefixApiKey), func(key []byte) error {
|
||||
err := bitcaskDb.Scan([]byte(prefixApiKey), func(key []byte) error {
|
||||
apikeyID := strings.Replace(string(key), prefixApiKey, "", 1)
|
||||
keys = append(keys, apikeyID)
|
||||
return nil
|
||||
@@ -179,16 +179,16 @@ func GetApiKey(id string) (models.ApiKey, bool) {
|
||||
return result, true
|
||||
}
|
||||
|
||||
// SaveApiKey saves the API key to the database. If updateTimeOnly is true, the database might not be synced afterwards
|
||||
// SaveApiKey saves the API key to the bitcaskDb. If updateTimeOnly is true, the bitcaskDb might not be synced afterwards
|
||||
func SaveApiKey(apikey models.ApiKey, updateTimeOnly bool) {
|
||||
var buf bytes.Buffer
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(apikey)
|
||||
helper.Check(err)
|
||||
err = database.Put([]byte(prefixApiKey+apikey.Id), buf.Bytes())
|
||||
err = bitcaskDb.Put([]byte(prefixApiKey+apikey.Id), buf.Bytes())
|
||||
helper.Check(err)
|
||||
if !updateTimeOnly {
|
||||
err = database.Sync()
|
||||
err = bitcaskDb.Sync()
|
||||
helper.Check(err)
|
||||
}
|
||||
}
|
||||
@@ -221,7 +221,7 @@ func DeleteSession(id string) {
|
||||
|
||||
// DeleteAllSessions logs all users out
|
||||
func DeleteAllSessions() {
|
||||
err := database.SiftScan([]byte(prefixSessions), func(key []byte) (bool, error) {
|
||||
err := bitcaskDb.SiftScan([]byte(prefixSessions), func(key []byte) (bool, error) {
|
||||
return true, nil
|
||||
})
|
||||
helper.Check(err)
|
||||
@@ -233,9 +233,9 @@ func SaveSession(id string, session models.Session, expiry time.Duration) {
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(session)
|
||||
helper.Check(err)
|
||||
err = database.PutWithTTL([]byte(prefixSessions+id), buf.Bytes(), expiry)
|
||||
err = bitcaskDb.PutWithTTL([]byte(prefixSessions+id), buf.Bytes(), expiry)
|
||||
helper.Check(err)
|
||||
err = database.Sync()
|
||||
err = bitcaskDb.Sync()
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
@@ -252,8 +252,8 @@ func GetUploadDefaults() models.LastUploadValues {
|
||||
UnlimitedTime: false,
|
||||
}
|
||||
result := models.LastUploadValues{}
|
||||
if database.Has([]byte(idLastUploadConfig)) {
|
||||
value, err := database.Get([]byte(idLastUploadConfig))
|
||||
if bitcaskDb.Has([]byte(idLastUploadConfig)) {
|
||||
value, err := bitcaskDb.Get([]byte(idLastUploadConfig))
|
||||
helper.Check(err)
|
||||
buf := bytes.NewBuffer(value)
|
||||
dec := gob.NewDecoder(buf)
|
||||
@@ -270,13 +270,13 @@ func SaveUploadDefaults(values models.LastUploadValues) {
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(values)
|
||||
helper.Check(err)
|
||||
err = database.Put([]byte(idLastUploadConfig), buf.Bytes())
|
||||
err = bitcaskDb.Put([]byte(idLastUploadConfig), buf.Bytes())
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
// RunGarbageCollection runs the databases GC
|
||||
func RunGarbageCollection() {
|
||||
err := database.RunGC()
|
||||
err := bitcaskDb.RunGC()
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
@@ -292,17 +292,17 @@ func byteToInt(intByte []byte) int {
|
||||
}
|
||||
|
||||
func deleteKey(id string) {
|
||||
if !database.Has([]byte(id)) {
|
||||
if !bitcaskDb.Has([]byte(id)) {
|
||||
return
|
||||
}
|
||||
err := database.Delete([]byte(id))
|
||||
err := bitcaskDb.Delete([]byte(id))
|
||||
helper.Check(err)
|
||||
err = database.Sync()
|
||||
err = bitcaskDb.Sync()
|
||||
helper.Check(err)
|
||||
}
|
||||
|
||||
func getValue(id string) ([]byte, bool) {
|
||||
value, err := database.Get([]byte(id))
|
||||
value, err := bitcaskDb.Get([]byte(id))
|
||||
if err == nil {
|
||||
return value, true
|
||||
}
|
||||
+8
-8
@@ -1,4 +1,4 @@
|
||||
package datastorage
|
||||
package database
|
||||
|
||||
import (
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
@@ -19,15 +19,15 @@ func TestMain(m *testing.M) {
|
||||
|
||||
func TestInit(t *testing.T) {
|
||||
Init("./test/filestorage.db")
|
||||
test.IsEqualBool(t, database != nil, true)
|
||||
test.IsEqualBool(t, bitcaskDb != nil, true)
|
||||
// Test that second init doesn't raise an error
|
||||
Init("./test/filestorage.db")
|
||||
}
|
||||
|
||||
func TestClose(t *testing.T) {
|
||||
test.IsEqualBool(t, database != nil, true)
|
||||
test.IsEqualBool(t, bitcaskDb != nil, true)
|
||||
Close()
|
||||
test.IsEqualBool(t, database == nil, true)
|
||||
test.IsEqualBool(t, bitcaskDb == nil, true)
|
||||
Init("./test/filestorage.db")
|
||||
}
|
||||
|
||||
@@ -181,12 +181,12 @@ func TestBinaryConversion(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunGc(t *testing.T) {
|
||||
items := database.Len()
|
||||
database.PutWithTTL([]byte("test"), []byte("value"), 500*time.Millisecond)
|
||||
test.IsEqualInt(t, database.Len(), items+1)
|
||||
items := bitcaskDb.Len()
|
||||
bitcaskDb.PutWithTTL([]byte("test"), []byte("value"), 500*time.Millisecond)
|
||||
test.IsEqualInt(t, bitcaskDb.Len(), items+1)
|
||||
time.Sleep(501 * time.Millisecond)
|
||||
RunGarbageCollection()
|
||||
test.IsEqualInt(t, database.Len(), items)
|
||||
test.IsEqualInt(t, bitcaskDb.Len(), items)
|
||||
}
|
||||
|
||||
func TestGetLengthAvailable(t *testing.T) {
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"errors"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/cloudconfig"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/environment"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
@@ -88,46 +88,46 @@ func TestEncryptionSetup(t *testing.T) {
|
||||
configuration.Load()
|
||||
configuration.Get().Encryption.Level = 3
|
||||
id := testconfiguration.WriteEncryptedFile()
|
||||
file, ok := datastorage.GetMetaDataById(id)
|
||||
file, ok := database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, file.UnlimitedTime, true)
|
||||
formObjects, err = input.toFormObject()
|
||||
test.IsNil(t, err)
|
||||
config, _, err = toConfiguration(&formObjects)
|
||||
test.IsNil(t, err)
|
||||
file, ok = datastorage.GetMetaDataById(id)
|
||||
file, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, file.UnlimitedTime, false)
|
||||
|
||||
configuration.Get().Encryption.Level = 2
|
||||
input.EncryptionPassword.Value = "unc"
|
||||
id = testconfiguration.WriteEncryptedFile()
|
||||
_, ok = datastorage.GetMetaDataById(id)
|
||||
_, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
formObjects, err = input.toFormObject()
|
||||
test.IsNil(t, err)
|
||||
config, _, err = toConfiguration(&formObjects)
|
||||
test.IsNil(t, err)
|
||||
file, ok = datastorage.GetMetaDataById(id)
|
||||
file, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, file.UnlimitedTime, true)
|
||||
|
||||
_, ok = datastorage.GetMetaDataById(id)
|
||||
_, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
configuration.Get().Encryption.Level = 2
|
||||
input.EncryptionPassword.Value = "otherpw"
|
||||
id = testconfiguration.WriteEncryptedFile()
|
||||
_, ok = datastorage.GetMetaDataById(id)
|
||||
_, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
formObjects, err = input.toFormObject()
|
||||
test.IsNil(t, err)
|
||||
config, _, err = toConfiguration(&formObjects)
|
||||
test.IsNil(t, err)
|
||||
file, ok = datastorage.GetMetaDataById(id)
|
||||
file, ok = database.GetMetaDataById(id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, file.UnlimitedTime, false)
|
||||
|
||||
datastorage.Close()
|
||||
database.Close()
|
||||
testconfiguration.Delete()
|
||||
|
||||
isInitialSetup = true
|
||||
|
||||
@@ -3,7 +3,7 @@ package environment
|
||||
import (
|
||||
"fmt"
|
||||
envParser "github.com/caarlos0/env/v6"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"os"
|
||||
"strconv"
|
||||
@@ -51,9 +51,9 @@ func New() Environment {
|
||||
if result.LengthId < 5 {
|
||||
result.LengthId = 5
|
||||
}
|
||||
if result.LengthId > datastorage.GetLengthAvailable() {
|
||||
result.LengthId = datastorage.GetLengthAvailable()
|
||||
fmt.Println("Reduced ID length to " + strconv.Itoa(datastorage.GetLengthAvailable()) + " due to database constraints")
|
||||
if result.LengthId > database.GetLengthAvailable() {
|
||||
result.LengthId = database.GetLengthAvailable()
|
||||
fmt.Println("Reduced ID length to " + strconv.Itoa(database.GetLengthAvailable()) + " due to database constraints")
|
||||
}
|
||||
if result.MaxMemory < 5 {
|
||||
result.MaxMemory = 5
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/encryption"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/logging"
|
||||
@@ -69,7 +69,7 @@ func NewFile(fileContent io.Reader, fileHeader *multipart.FileHeader, uploadRequ
|
||||
if err != nil {
|
||||
return models.File{}, err
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
return file, nil
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ func NewFile(fileContent io.Reader, fileHeader *multipart.FileHeader, uploadRequ
|
||||
err = os.Rename(tempFile.Name(), dataDir+"/"+file.SHA256)
|
||||
helper.Check(err)
|
||||
hasBeenRenamed = true
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
return file, nil
|
||||
}
|
||||
destinationFile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
|
||||
@@ -106,7 +106,7 @@ func NewFile(fileContent io.Reader, fileHeader *multipart.FileHeader, uploadRequ
|
||||
return models.File{}, err
|
||||
}
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
return file, nil
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ func getEncInfoFromExistingFile(hash string) (models.EncryptionInfo, bool) {
|
||||
if encryptionLevel == encryption.NoEncryption || encryptionLevel == encryption.EndToEndEncryption {
|
||||
return models.EncryptionInfo{}, true
|
||||
}
|
||||
allFiles := datastorage.GetAllMetadata()
|
||||
allFiles := database.GetAllMetadata()
|
||||
for _, existingFile := range allFiles {
|
||||
if existingFile.SHA256 == hash {
|
||||
return existingFile.Encryption, true
|
||||
@@ -135,7 +135,7 @@ func deleteTempFile(file *os.File, hasBeenRenamed *bool) {
|
||||
|
||||
// DeleteAllEncrypted marks all encrypted files for deletion on next cleanup
|
||||
func DeleteAllEncrypted() {
|
||||
files := datastorage.GetAllMetadata()
|
||||
files := database.GetAllMetadata()
|
||||
for _, file := range files {
|
||||
if file.Encryption.IsEncrypted {
|
||||
DeleteFile(file.Id, false)
|
||||
@@ -214,7 +214,7 @@ func addHotlink(file *models.File) {
|
||||
}
|
||||
link := helper.GenerateRandomString(40) + getFileExtension(file.Name)
|
||||
file.HotlinkId = link
|
||||
datastorage.SaveHotlink(*file)
|
||||
database.SaveHotlink(*file)
|
||||
}
|
||||
|
||||
func getFileExtension(filename string) string {
|
||||
@@ -233,7 +233,7 @@ func GetFile(id string) (models.File, bool) {
|
||||
if id == "" {
|
||||
return emptyResult, false
|
||||
}
|
||||
file, ok := datastorage.GetMetaDataById(id)
|
||||
file, ok := database.GetMetaDataById(id)
|
||||
if !ok {
|
||||
return emptyResult, false
|
||||
}
|
||||
@@ -253,7 +253,7 @@ func GetFileByHotlink(id string) (models.File, bool) {
|
||||
if id == "" {
|
||||
return emptyResult, false
|
||||
}
|
||||
fileId, ok := datastorage.GetHotlink(id)
|
||||
fileId, ok := database.GetHotlink(id)
|
||||
if !ok {
|
||||
return emptyResult, false
|
||||
}
|
||||
@@ -272,7 +272,7 @@ func RequiresClientDecryption(file models.File) bool {
|
||||
// ServeFile subtracts a download allowance and serves the file to the browser
|
||||
func ServeFile(file models.File, w http.ResponseWriter, r *http.Request, forceDownload bool) {
|
||||
file.DownloadsRemaining = file.DownloadsRemaining - 1
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
logging.AddDownload(&file, r)
|
||||
|
||||
// If file is stored on AWS
|
||||
@@ -342,11 +342,11 @@ func CleanUp(periodic bool) {
|
||||
downloadstatus.Clean()
|
||||
timeNow := time.Now().Unix()
|
||||
wasItemDeleted := false
|
||||
for key, element := range datastorage.GetAllMetadata() {
|
||||
for key, element := range database.GetAllMetadata() {
|
||||
fileExists := FileExists(element, configuration.Get().DataDir)
|
||||
if !fileExists || isExpiredFileWithoutDownload(element, timeNow) {
|
||||
deleteFile := true
|
||||
for _, secondLoopElement := range datastorage.GetAllMetadata() {
|
||||
for _, secondLoopElement := range database.GetAllMetadata() {
|
||||
if (element.Id != secondLoopElement.Id) && (element.SHA256 == secondLoopElement.SHA256) {
|
||||
deleteFile = false
|
||||
}
|
||||
@@ -355,9 +355,9 @@ func CleanUp(periodic bool) {
|
||||
deleteSource(element, configuration.Get().DataDir)
|
||||
}
|
||||
if element.HotlinkId != "" {
|
||||
datastorage.DeleteHotlink(element.HotlinkId)
|
||||
database.DeleteHotlink(element.HotlinkId)
|
||||
}
|
||||
datastorage.DeleteMetaData(key)
|
||||
database.DeleteMetaData(key)
|
||||
wasItemDeleted = true
|
||||
}
|
||||
}
|
||||
@@ -370,7 +370,7 @@ func CleanUp(periodic bool) {
|
||||
CleanUp(periodic)
|
||||
}()
|
||||
}
|
||||
datastorage.RunGarbageCollection()
|
||||
database.RunGarbageCollection()
|
||||
}
|
||||
|
||||
// IsExpiredFile returns true if the file is expired, either due to download count
|
||||
@@ -405,13 +405,13 @@ func DeleteFile(keyId string, deleteSource bool) bool {
|
||||
if keyId == "" {
|
||||
return false
|
||||
}
|
||||
item, ok := datastorage.GetMetaDataById(keyId)
|
||||
item, ok := database.GetMetaDataById(keyId)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
item.ExpireAt = 0
|
||||
item.UnlimitedTime = false
|
||||
datastorage.SaveMetaData(item)
|
||||
database.SaveMetaData(item)
|
||||
for _, status := range downloadstatus.GetAll() {
|
||||
if status.FileId == item.Id {
|
||||
downloadstatus.SetComplete(status.Id)
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"bytes"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/cloudconfig"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/encryption"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/storage/cloudstorage/aws"
|
||||
@@ -58,7 +58,7 @@ func TestGetFile(t *testing.T) {
|
||||
UnlimitedDownloads: true,
|
||||
UnlimitedTime: true,
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
_, result = GetFile(file.Id)
|
||||
test.IsEqualBool(t, result, false)
|
||||
|
||||
@@ -80,7 +80,7 @@ func TestGetEncInfoFromExistingFile(t *testing.T) {
|
||||
UnlimitedDownloads: true,
|
||||
UnlimitedTime: true,
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
encinfo, result := getEncInfoFromExistingFile("testhash")
|
||||
test.IsEqualBool(t, encinfo.IsEncrypted, false)
|
||||
test.IsEqualBool(t, result, true)
|
||||
@@ -115,7 +115,7 @@ func TestAddHotlink(t *testing.T) {
|
||||
test.IsEqualInt(t, len(file.HotlinkId), 44)
|
||||
lastCharacters := file.HotlinkId[len(file.HotlinkId)-4:]
|
||||
test.IsEqualBool(t, lastCharacters == ".jpg", true)
|
||||
link, ok := datastorage.GetHotlink(file.HotlinkId)
|
||||
link, ok := database.GetHotlink(file.HotlinkId)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, link, "testId")
|
||||
file = models.File{Name: "test.jpg", Id: "testId", ExpireAt: time.Now().Add(time.Hour).Unix()}
|
||||
@@ -168,7 +168,7 @@ func TestNewFile(t *testing.T) {
|
||||
header := newFile.Header
|
||||
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok := datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok := database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, retrievedFile.Name, "test.dat")
|
||||
test.IsEqualString(t, retrievedFile.SHA256, "f1474c19eff0fc8998fa6e1b1f7bf31793b103a6")
|
||||
@@ -217,7 +217,7 @@ func TestNewFile(t *testing.T) {
|
||||
// Also testing renaming of temp file
|
||||
file, err = NewFile(bigFile, &header, request)
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, retrievedFile.Name, "bigfile")
|
||||
test.IsEqualString(t, retrievedFile.SHA256, "9674344c90c2f0646f0b78026e127c9b86e3ad77")
|
||||
@@ -250,7 +250,7 @@ func TestNewFile(t *testing.T) {
|
||||
}
|
||||
file, err = NewFile(bigFile, &header, request)
|
||||
test.IsNotNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, false)
|
||||
bigFile.Close()
|
||||
os.Remove("bigfile")
|
||||
@@ -267,7 +267,7 @@ func TestNewFile(t *testing.T) {
|
||||
|
||||
newFile, err = createTestFile()
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(newFile.File.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(newFile.File.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, retrievedFile.SHA256, "5bbfa18805eb12c678cfd284c956718d57039e37")
|
||||
|
||||
@@ -276,18 +276,18 @@ func TestNewFile(t *testing.T) {
|
||||
bigFile, _ = os.Open("bigfile")
|
||||
file, err = NewFile(bigFile, &header, request)
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, retrievedFile.Name, "bigfile")
|
||||
test.IsEqualString(t, retrievedFile.SHA256, "c1c165c30d0def15ba2bc8f1bd243be13b8c8fe7")
|
||||
|
||||
bigFile.Close()
|
||||
datastorage.DeleteMetaData(retrievedFile.Id)
|
||||
database.DeleteMetaData(retrievedFile.Id)
|
||||
|
||||
bigFile, _ = os.Open("bigfile")
|
||||
file, err = NewFile(bigFile, &header, request)
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
os.Remove("bigfile")
|
||||
|
||||
@@ -314,7 +314,7 @@ func TestNewFile(t *testing.T) {
|
||||
test.IsEqualBool(t, ok, true)
|
||||
file, err = NewFile(bytes.NewReader(content), &header, request)
|
||||
test.IsNil(t, err)
|
||||
retrievedFile, ok = datastorage.GetMetaDataById(file.Id)
|
||||
retrievedFile, ok = database.GetMetaDataById(file.Id)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, retrievedFile.Name, "bigfile")
|
||||
test.IsEqualString(t, retrievedFile.SHA256, "f1474c19eff0fc8998fa6e1b1f7bf31793b103a6")
|
||||
@@ -361,7 +361,7 @@ func TestServeFile(t *testing.T) {
|
||||
newFile, err := createTestFile()
|
||||
test.IsNil(t, err)
|
||||
file = newFile.File
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
r = httptest.NewRequest("GET", "/upload", nil)
|
||||
w = httptest.NewRecorder()
|
||||
cipher, err := encryption.GetRandomCipher()
|
||||
@@ -380,7 +380,7 @@ func TestServeFile(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCleanUp(t *testing.T) {
|
||||
files := datastorage.GetAllMetadata()
|
||||
files := database.GetAllMetadata()
|
||||
downloadstatus.DeleteAll()
|
||||
downloadstatus.SetDownload(files["cleanuptest123456789"])
|
||||
|
||||
@@ -395,7 +395,7 @@ func TestCleanUp(t *testing.T) {
|
||||
test.FileExists(t, "test/data/2341354656543213246465465465432456898794")
|
||||
|
||||
CleanUp(false)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.IsEqualString(t, files["cleanuptest123456789"].Name, "cleanup")
|
||||
test.FileExists(t, "test/data/2341354656543213246465465465432456898794")
|
||||
test.IsEqualString(t, files["deletedfile123456789"].Name, "")
|
||||
@@ -408,11 +408,11 @@ func TestCleanUp(t *testing.T) {
|
||||
|
||||
file, _ := GetFile("n1tSTAGj8zan9KaT4u6p")
|
||||
file.DownloadsRemaining = 0
|
||||
datastorage.SaveMetaData(file)
|
||||
files = datastorage.GetAllMetadata()
|
||||
database.SaveMetaData(file)
|
||||
files = database.GetAllMetadata()
|
||||
|
||||
CleanUp(false)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.FileDoesNotExist(t, "test/data/a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0")
|
||||
test.IsEqualString(t, files["n1tSTAGj8zan9KaT4u6p"].Name, "")
|
||||
test.IsEqualString(t, files["deletedfile123456789"].Name, "")
|
||||
@@ -422,10 +422,10 @@ func TestCleanUp(t *testing.T) {
|
||||
|
||||
file, _ = GetFile("Wzol7LyY2QVczXynJtVo")
|
||||
file.DownloadsRemaining = 0
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
|
||||
CleanUp(false)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.FileExists(t, "test/data/e017693e4a04a59d0b0f400fe98177fe7ee13cf7")
|
||||
test.IsEqualString(t, files["Wzol7LyY2QVczXynJtVo"].Name, "")
|
||||
test.IsEqualString(t, files["n1tSTAGj8zan9KaT4u6p"].Name, "")
|
||||
@@ -435,13 +435,13 @@ func TestCleanUp(t *testing.T) {
|
||||
|
||||
file, _ = GetFile("e4TjE7CokWK0giiLNxDL")
|
||||
file.DownloadsRemaining = 0
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
file, _ = GetFile("wefffewhtrhhtrhtrhtr")
|
||||
file.DownloadsRemaining = 0
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
|
||||
CleanUp(false)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.FileDoesNotExist(t, "test/data/e017693e4a04a59d0b0f400fe98177fe7ee13cf7")
|
||||
test.IsEqualString(t, files["Wzol7LyY2QVczXynJtVo"].Name, "")
|
||||
test.IsEqualString(t, files["n1tSTAGj8zan9KaT4u6p"].Name, "")
|
||||
@@ -454,7 +454,7 @@ func TestCleanUp(t *testing.T) {
|
||||
|
||||
downloadstatus.DeleteAll()
|
||||
CleanUp(false)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.IsEqualString(t, files["cleanuptest123456789"].Name, "")
|
||||
test.FileDoesNotExist(t, "test/data/2341354656543213246465465465432456898794")
|
||||
|
||||
@@ -474,13 +474,13 @@ func TestCleanUp(t *testing.T) {
|
||||
func TestDeleteFile(t *testing.T) {
|
||||
testconfiguration.Create(true)
|
||||
configuration.Load()
|
||||
files := datastorage.GetAllMetadata()
|
||||
files := database.GetAllMetadata()
|
||||
test.IsEqualString(t, files["n1tSTAGj8zan9KaT4u6p"].Name, "picture.jpg")
|
||||
test.FileExists(t, "test/data/a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0")
|
||||
result := DeleteFile("n1tSTAGj8zan9KaT4u6p", true)
|
||||
time.Sleep(time.Second)
|
||||
test.IsEqualBool(t, result, true)
|
||||
files = datastorage.GetAllMetadata()
|
||||
files = database.GetAllMetadata()
|
||||
test.IsEqualString(t, files["n1tSTAGj8zan9KaT4u6p"].Name, "")
|
||||
test.FileDoesNotExist(t, "test/data/a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0")
|
||||
result = DeleteFile("invalid", true)
|
||||
@@ -491,13 +491,13 @@ func TestDeleteFile(t *testing.T) {
|
||||
test.IsEqualBool(t, result, false)
|
||||
|
||||
testfile := models.File{Id: "testfiledownload", DownloadsRemaining: 1, ExpireAt: 2147483646}
|
||||
datastorage.SaveMetaData(testfile)
|
||||
database.SaveMetaData(testfile)
|
||||
downloadstatus.SetDownload(testfile)
|
||||
file, ok := datastorage.GetMetaDataById("testfiledownload")
|
||||
file, ok := database.GetMetaDataById("testfiledownload")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, file.ExpireAt != 0, true)
|
||||
DeleteFile(file.Id, false)
|
||||
file, ok = datastorage.GetMetaDataById("testfiledownload")
|
||||
file, ok = database.GetMetaDataById("testfiledownload")
|
||||
test.IsEqualInt(t, int(file.ExpireAt), 0)
|
||||
|
||||
if aws.IsIncludedInBuild {
|
||||
@@ -513,8 +513,8 @@ func TestDeleteFile(t *testing.T) {
|
||||
SHA256: "x341354656543213246465465465432456898794",
|
||||
AwsBucket: "gokapi-test",
|
||||
}
|
||||
datastorage.SaveMetaData(awsFile)
|
||||
files = datastorage.GetAllMetadata()
|
||||
database.SaveMetaData(awsFile)
|
||||
files = database.GetAllMetadata()
|
||||
result, err := aws.FileExists(files["awsTest1234567890123"])
|
||||
test.IsEqualBool(t, result, true)
|
||||
test.IsNil(t, err)
|
||||
@@ -565,7 +565,7 @@ func TestDeleteAllEncrypted(t *testing.T) {
|
||||
IsEncrypted: true,
|
||||
},
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
database.SaveMetaData(file)
|
||||
file = models.File{
|
||||
Id: "testEncDelUn",
|
||||
UnlimitedTime: true,
|
||||
@@ -573,17 +573,17 @@ func TestDeleteAllEncrypted(t *testing.T) {
|
||||
IsEncrypted: false,
|
||||
},
|
||||
}
|
||||
datastorage.SaveMetaData(file)
|
||||
data, ok := datastorage.GetMetaDataById("testEncDelEnc")
|
||||
database.SaveMetaData(file)
|
||||
data, ok := database.GetMetaDataById("testEncDelEnc")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, data.UnlimitedTime, true)
|
||||
data, ok = datastorage.GetMetaDataById("testEncDelUn")
|
||||
data, ok = database.GetMetaDataById("testEncDelUn")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, data.UnlimitedTime, true)
|
||||
DeleteAllEncrypted()
|
||||
data, ok = datastorage.GetMetaDataById("testEncDelEnc")
|
||||
data, ok = database.GetMetaDataById("testEncDelEnc")
|
||||
test.IsEqualBool(t, data.UnlimitedTime, false)
|
||||
data, ok = datastorage.GetMetaDataById("testEncDelUn")
|
||||
data, ok = database.GetMetaDataById("testEncDelUn")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, data.UnlimitedTime, true)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ package testconfiguration
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/storage/cloudstorage/aws"
|
||||
@@ -32,9 +32,9 @@ func SetDirEnv() {
|
||||
func Create(initFiles bool) {
|
||||
SetDirEnv()
|
||||
os.WriteFile(configFile, configTestFile, 0777)
|
||||
datastorage.Init("./test/filestorage.db")
|
||||
database.Init("./test/filestorage.db")
|
||||
writeTestSessions()
|
||||
datastorage.SaveUploadDefaults(models.LastUploadValues{
|
||||
database.SaveUploadDefaults(models.LastUploadValues{
|
||||
Downloads: 3,
|
||||
TimeExpiry: 20,
|
||||
Password: "123",
|
||||
@@ -42,9 +42,9 @@ func Create(initFiles bool) {
|
||||
UnlimitedTime: false,
|
||||
})
|
||||
writeTestFiles()
|
||||
datastorage.SaveHotlink(models.File{Id: "n1tSTAGj8zan9KaT4u6p", HotlinkId: "PhSs6mFtf8O5YGlLMfNw9rYXx9XRNkzCnJZpQBi7inunv3Z4A.jpg", ExpireAt: time.Now().Add(time.Hour).Unix()})
|
||||
database.SaveHotlink(models.File{Id: "n1tSTAGj8zan9KaT4u6p", HotlinkId: "PhSs6mFtf8O5YGlLMfNw9rYXx9XRNkzCnJZpQBi7inunv3Z4A.jpg", ExpireAt: time.Now().Add(time.Hour).Unix()})
|
||||
writeApiKeyys()
|
||||
datastorage.Close()
|
||||
database.Close()
|
||||
|
||||
if initFiles {
|
||||
os.Mkdir("test/data", 0777)
|
||||
@@ -60,7 +60,7 @@ func Create(initFiles bool) {
|
||||
// WriteEncryptedFile writes metadata for an encrypted file and returns the id
|
||||
func WriteEncryptedFile() string {
|
||||
name := helper.GenerateRandomString(10)
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: name,
|
||||
Name: name,
|
||||
SHA256: name,
|
||||
@@ -160,47 +160,47 @@ func DisableS3() {
|
||||
}
|
||||
|
||||
func writeTestSessions() {
|
||||
datastorage.SaveSession("validsession", models.Session{
|
||||
database.SaveSession("validsession", models.Session{
|
||||
RenewAt: 2147483645,
|
||||
ValidUntil: 2147483646,
|
||||
}, 1*time.Hour)
|
||||
datastorage.SaveSession("logoutsession", models.Session{
|
||||
database.SaveSession("logoutsession", models.Session{
|
||||
RenewAt: 2147483645,
|
||||
ValidUntil: 2147483646,
|
||||
}, 1*time.Hour)
|
||||
datastorage.SaveSession("needsRenewal", models.Session{
|
||||
database.SaveSession("needsRenewal", models.Session{
|
||||
RenewAt: 0,
|
||||
ValidUntil: 2147483646,
|
||||
}, 1*time.Hour)
|
||||
datastorage.SaveSession("expiredsession", models.Session{
|
||||
database.SaveSession("expiredsession", models.Session{
|
||||
RenewAt: 0,
|
||||
ValidUntil: 0,
|
||||
}, 1*time.Hour)
|
||||
}
|
||||
|
||||
func writeApiKeyys() {
|
||||
datastorage.SaveApiKey(models.ApiKey{
|
||||
database.SaveApiKey(models.ApiKey{
|
||||
Id: "validkey",
|
||||
FriendlyName: "First Key",
|
||||
}, false)
|
||||
datastorage.SaveApiKey(models.ApiKey{
|
||||
database.SaveApiKey(models.ApiKey{
|
||||
Id: "GAh1IhXDvYnqfYLazWBqMB9HSFmNPO",
|
||||
FriendlyName: "Second Key",
|
||||
LastUsed: 1620671580,
|
||||
LastUsedString: "used",
|
||||
}, false)
|
||||
datastorage.SaveApiKey(models.ApiKey{
|
||||
database.SaveApiKey(models.ApiKey{
|
||||
Id: "jiREglQJW0bOqJakfjdVfe8T1EM8n8",
|
||||
FriendlyName: "Unnamed Key",
|
||||
}, false)
|
||||
datastorage.SaveApiKey(models.ApiKey{
|
||||
database.SaveApiKey(models.ApiKey{
|
||||
Id: "okeCMWqhVMZSpt5c1qpCWhKvJJPifb",
|
||||
FriendlyName: "Unnamed Key",
|
||||
}, false)
|
||||
}
|
||||
|
||||
func writeTestFiles() {
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "Wzol7LyY2QVczXynJtVo",
|
||||
Name: "smallfile2",
|
||||
Size: "8 B",
|
||||
@@ -210,7 +210,7 @@ func writeTestFiles() {
|
||||
DownloadsRemaining: 1,
|
||||
ContentType: "text/html",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "e4TjE7CokWK0giiLNxDL",
|
||||
Name: "smallfile2",
|
||||
Size: "8 B",
|
||||
@@ -220,7 +220,7 @@ func writeTestFiles() {
|
||||
DownloadsRemaining: 2,
|
||||
ContentType: "text/html",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "wefffewhtrhhtrhtrhtr",
|
||||
Name: "smallfile3",
|
||||
Size: "8 B",
|
||||
@@ -230,7 +230,7 @@ func writeTestFiles() {
|
||||
DownloadsRemaining: 1,
|
||||
ContentType: "text/html",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "deletedfile123456789",
|
||||
Name: "DeletedFile",
|
||||
Size: "8 B",
|
||||
@@ -240,7 +240,7 @@ func writeTestFiles() {
|
||||
DownloadsRemaining: 2,
|
||||
ContentType: "text/html",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "jpLXGJKigM4hjtA6T6sN",
|
||||
Name: "smallfile",
|
||||
Size: "7 B",
|
||||
@@ -251,7 +251,7 @@ func writeTestFiles() {
|
||||
ContentType: "text/html",
|
||||
PasswordHash: "7b30508aa9b233ab4b8a11b2af5816bdb58ca3e7",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "jpLXGJKigM4hjtA6T6sN2",
|
||||
Name: "smallfile",
|
||||
Size: "7 B",
|
||||
@@ -262,7 +262,7 @@ func writeTestFiles() {
|
||||
ContentType: "text/html",
|
||||
PasswordHash: "7b30508aa9b233ab4b8a11b2af5816bdb58ca3e7",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "n1tSTAGj8zan9KaT4u6p",
|
||||
Name: "picture.jpg",
|
||||
Size: "4 B",
|
||||
@@ -273,7 +273,7 @@ func writeTestFiles() {
|
||||
ContentType: "text/html",
|
||||
HotlinkId: "PhSs6mFtf8O5YGlLMfNw9rYXx9XRNkzCnJZpQBi7inunv3Z4A.jpg",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "cleanuptest123456789",
|
||||
Name: "cleanup",
|
||||
Size: "4 B",
|
||||
@@ -283,7 +283,7 @@ func writeTestFiles() {
|
||||
DownloadsRemaining: 0,
|
||||
ContentType: "text/html",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "awsTest1234567890123",
|
||||
Name: "Aws Test File",
|
||||
Size: "20 MB",
|
||||
@@ -294,7 +294,7 @@ func writeTestFiles() {
|
||||
ContentType: "application/octet-stream",
|
||||
AwsBucket: "gokapi-test",
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "unlimitedDownload",
|
||||
Name: "unlimitedDownload",
|
||||
Size: "8 B",
|
||||
@@ -305,7 +305,7 @@ func writeTestFiles() {
|
||||
ContentType: "text/html",
|
||||
UnlimitedDownloads: true,
|
||||
})
|
||||
datastorage.SaveMetaData(models.File{
|
||||
database.SaveMetaData(models.File{
|
||||
Id: "unlimitedTime",
|
||||
Name: "unlimitedTime",
|
||||
Size: "8 B",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
package testconfiguration
|
||||
|
||||
import (
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/storage/cloudstorage/aws"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
@@ -37,12 +37,12 @@ func TestSetUpgradeConfigFileV8(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestWriteEncryptedFile(t *testing.T) {
|
||||
datastorage.Init("./test/filestorage.db")
|
||||
database.Init("./test/filestorage.db")
|
||||
fileId := WriteEncryptedFile()
|
||||
file, ok := datastorage.GetMetaDataById(fileId)
|
||||
file, ok := database.GetMetaDataById(fileId)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, file.Id, fileId)
|
||||
datastorage.Close()
|
||||
database.Close()
|
||||
}
|
||||
|
||||
func TestEnableS3(t *testing.T) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/NYTimes/gziphandler"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/encryption"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
@@ -399,7 +399,7 @@ func (u *UploadView) convertGlobalConfig(isMainView bool) *UploadView {
|
||||
var result []models.File
|
||||
var resultApi []models.ApiKey
|
||||
if isMainView {
|
||||
for _, element := range datastorage.GetAllMetadata() {
|
||||
for _, element := range database.GetAllMetadata() {
|
||||
result = append(result, element)
|
||||
}
|
||||
sort.Slice(result[:], func(i, j int) bool {
|
||||
@@ -409,7 +409,7 @@ func (u *UploadView) convertGlobalConfig(isMainView bool) *UploadView {
|
||||
return result[i].ExpireAt > result[j].ExpireAt
|
||||
})
|
||||
} else {
|
||||
for _, element := range datastorage.GetAllApiKeys() {
|
||||
for _, element := range database.GetAllApiKeys() {
|
||||
if element.LastUsed == 0 {
|
||||
element.LastUsedString = "Never"
|
||||
} else {
|
||||
@@ -433,7 +433,7 @@ func (u *UploadView) convertGlobalConfig(isMainView bool) *UploadView {
|
||||
u.IsMainView = isMainView
|
||||
u.MaxFileSize = configuration.Get().MaxFileSizeMB
|
||||
u.IsLogoutAvailable = authentication.IsLogoutAvailable()
|
||||
defaultValues := datastorage.GetUploadDefaults()
|
||||
defaultValues := database.GetUploadDefaults()
|
||||
u.DefaultDownloads = defaultValues.Downloads
|
||||
u.DefaultExpiry = defaultValues.TimeExpiry
|
||||
u.DefaultPassword = defaultValues.Password
|
||||
|
||||
@@ -5,7 +5,7 @@ package webserver
|
||||
import (
|
||||
"errors"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
"github.com/forceu/gokapi/internal/test/testconfiguration"
|
||||
"github.com/forceu/gokapi/internal/webserver/authentication"
|
||||
@@ -510,7 +510,7 @@ func TestApiPageNotAuthorized(t *testing.T) {
|
||||
|
||||
func TestNewApiKey(t *testing.T) {
|
||||
// Authorised
|
||||
amountKeys := len(datastorage.GetAllApiKeys())
|
||||
amountKeys := len(database.GetAllApiKeys())
|
||||
test.HttpPageResult(t, test.HttpTestConfig{
|
||||
Url: "http://127.0.0.1:53843/apiNew",
|
||||
IsHtml: true,
|
||||
@@ -521,7 +521,7 @@ func TestNewApiKey(t *testing.T) {
|
||||
Value: "validsession",
|
||||
}},
|
||||
})
|
||||
amountKeysAfter := len(datastorage.GetAllApiKeys())
|
||||
amountKeysAfter := len(database.GetAllApiKeys())
|
||||
test.IsEqualInt(t, amountKeysAfter, amountKeys+1)
|
||||
test.IsEqualInt(t, amountKeysAfter, 5)
|
||||
|
||||
@@ -537,14 +537,14 @@ func TestNewApiKey(t *testing.T) {
|
||||
Value: "invalid",
|
||||
}},
|
||||
})
|
||||
amountKeysAfter = len(datastorage.GetAllApiKeys())
|
||||
amountKeysAfter = len(database.GetAllApiKeys())
|
||||
test.IsEqualInt(t, amountKeysAfter, amountKeys)
|
||||
test.IsEqualInt(t, amountKeysAfter, 5)
|
||||
}
|
||||
|
||||
func TestDeleteApiKey(t *testing.T) {
|
||||
// Not authorised
|
||||
amountKeys := len(datastorage.GetAllApiKeys())
|
||||
amountKeys := len(database.GetAllApiKeys())
|
||||
test.HttpPageResult(t, test.HttpTestConfig{
|
||||
Url: "http://127.0.0.1:53843/apiDelete?id=jiREglQJW0bOqJakfjdVfe8T1EM8n8",
|
||||
IsHtml: true,
|
||||
@@ -555,8 +555,8 @@ func TestDeleteApiKey(t *testing.T) {
|
||||
Value: "invalid",
|
||||
}},
|
||||
})
|
||||
amountKeysAfter := len(datastorage.GetAllApiKeys())
|
||||
key, ok := datastorage.GetApiKey("jiREglQJW0bOqJakfjdVfe8T1EM8n8")
|
||||
amountKeysAfter := len(database.GetAllApiKeys())
|
||||
key, ok := database.GetApiKey("jiREglQJW0bOqJakfjdVfe8T1EM8n8")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, key.Id, "jiREglQJW0bOqJakfjdVfe8T1EM8n8")
|
||||
test.IsEqualInt(t, amountKeysAfter, amountKeys)
|
||||
@@ -573,8 +573,8 @@ func TestDeleteApiKey(t *testing.T) {
|
||||
Value: "validsession",
|
||||
}},
|
||||
})
|
||||
amountKeysAfter = len(datastorage.GetAllApiKeys())
|
||||
_, ok = datastorage.GetApiKey("jiREglQJW0bOqJakfjdVfe8T1EM8n8")
|
||||
amountKeysAfter = len(database.GetAllApiKeys())
|
||||
_, ok = database.GetApiKey("jiREglQJW0bOqJakfjdVfe8T1EM8n8")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
test.IsEqualInt(t, amountKeysAfter, amountKeys-1)
|
||||
test.IsEqualInt(t, amountKeysAfter, 4)
|
||||
|
||||
@@ -2,7 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/storage"
|
||||
@@ -43,7 +43,7 @@ func DeleteKey(id string) bool {
|
||||
if !IsValidApiKey(id, false) {
|
||||
return false
|
||||
}
|
||||
datastorage.DeleteApiKey(id)
|
||||
database.DeleteApiKey(id)
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ func NewKey() string {
|
||||
FriendlyName: "Unnamed key",
|
||||
LastUsed: 0,
|
||||
}
|
||||
datastorage.SaveApiKey(newKey, false)
|
||||
database.SaveApiKey(newKey, false)
|
||||
return newKey.Id
|
||||
}
|
||||
|
||||
@@ -66,14 +66,14 @@ func changeFriendlyName(w http.ResponseWriter, request apiRequest) {
|
||||
if request.friendlyName == "" {
|
||||
request.friendlyName = "Unnamed key"
|
||||
}
|
||||
key, ok := datastorage.GetApiKey(request.apiKeyToModify)
|
||||
key, ok := database.GetApiKey(request.apiKeyToModify)
|
||||
if !ok {
|
||||
sendError(w, http.StatusInternalServerError, "Could not modify API key")
|
||||
return
|
||||
}
|
||||
if key.FriendlyName != request.friendlyName {
|
||||
key.FriendlyName = request.friendlyName
|
||||
datastorage.SaveApiKey(key, false)
|
||||
database.SaveApiKey(key, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ func deleteFile(w http.ResponseWriter, request apiRequest) {
|
||||
func list(w http.ResponseWriter) {
|
||||
var validFiles []models.File
|
||||
timeNow := time.Now().Unix()
|
||||
for _, element := range datastorage.GetAllMetadata() {
|
||||
for _, element := range database.GetAllMetadata() {
|
||||
if !storage.IsExpiredFile(element, timeNow) {
|
||||
validFiles = append(validFiles, element)
|
||||
}
|
||||
@@ -144,11 +144,11 @@ func IsValidApiKey(key string, modifyTime bool) bool {
|
||||
if key == "" {
|
||||
return false
|
||||
}
|
||||
savedKey, ok := datastorage.GetApiKey(key)
|
||||
savedKey, ok := database.GetApiKey(key)
|
||||
if ok && savedKey.Id != "" {
|
||||
if modifyTime {
|
||||
savedKey.LastUsed = time.Now().Unix()
|
||||
datastorage.SaveApiKey(savedKey, true)
|
||||
database.SaveApiKey(savedKey, true)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
"github.com/forceu/gokapi/internal/test/testconfiguration"
|
||||
@@ -32,18 +32,18 @@ var newKeyId string
|
||||
|
||||
func TestNewKey(t *testing.T) {
|
||||
newKeyId = NewKey()
|
||||
key, ok := datastorage.GetApiKey(newKeyId)
|
||||
key, ok := database.GetApiKey(newKeyId)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, key.FriendlyName, "Unnamed key")
|
||||
}
|
||||
|
||||
func TestDeleteKey(t *testing.T) {
|
||||
key, ok := datastorage.GetApiKey(newKeyId)
|
||||
key, ok := database.GetApiKey(newKeyId)
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, key.FriendlyName, "Unnamed key")
|
||||
result := DeleteKey(newKeyId)
|
||||
test.IsEqualBool(t, result, true)
|
||||
_, ok = datastorage.GetApiKey(newKeyId)
|
||||
_, ok = database.GetApiKey(newKeyId)
|
||||
test.IsEqualBool(t, ok, false)
|
||||
result = DeleteKey("invalid")
|
||||
test.IsEqualBool(t, result, false)
|
||||
@@ -53,11 +53,11 @@ func TestIsValidApiKey(t *testing.T) {
|
||||
test.IsEqualBool(t, IsValidApiKey("", false), false)
|
||||
test.IsEqualBool(t, IsValidApiKey("invalid", false), false)
|
||||
test.IsEqualBool(t, IsValidApiKey("validkey", false), true)
|
||||
key, ok := datastorage.GetApiKey("validkey")
|
||||
key, ok := database.GetApiKey("validkey")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, key.LastUsed == 0, true)
|
||||
test.IsEqualBool(t, IsValidApiKey("validkey", true), true)
|
||||
key, ok = datastorage.GetApiKey("validkey")
|
||||
key, ok = database.GetApiKey("validkey")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualBool(t, key.LastUsed == 0, false)
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func TestChangeFriendlyName(t *testing.T) {
|
||||
Process(w, r, maxMemory)
|
||||
test.IsEqualInt(t, w.Code, 200)
|
||||
|
||||
key, ok := datastorage.GetApiKey("validkey")
|
||||
key, ok := database.GetApiKey("validkey")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, key.FriendlyName, "Unnamed key")
|
||||
w, r = test.GetRecorder("GET", "/api/auth/friendlyname", nil, []test.Header{{
|
||||
@@ -116,7 +116,7 @@ func TestChangeFriendlyName(t *testing.T) {
|
||||
Name: "friendlyName", Value: "NewName"}}, nil)
|
||||
Process(w, r, maxMemory)
|
||||
test.IsEqualInt(t, w.Code, 200)
|
||||
key, ok = datastorage.GetApiKey("validkey")
|
||||
key, ok = database.GetApiKey("validkey")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, key.FriendlyName, "NewName")
|
||||
w = httptest.NewRecorder()
|
||||
@@ -141,7 +141,7 @@ func TestDeleteFile(t *testing.T) {
|
||||
}, nil)
|
||||
Process(w, r, maxMemory)
|
||||
test.ResponseBodyContains(t, w, "Invalid id provided.")
|
||||
file, ok := datastorage.GetMetaDataById("jpLXGJKigM4hjtA6T6sN2")
|
||||
file, ok := database.GetMetaDataById("jpLXGJKigM4hjtA6T6sN2")
|
||||
test.IsEqualBool(t, ok, true)
|
||||
test.IsEqualString(t, file.Id, "jpLXGJKigM4hjtA6T6sN2")
|
||||
w, r = test.GetRecorder("GET", "/api/files/delete", nil, []test.Header{{
|
||||
@@ -155,7 +155,7 @@ func TestDeleteFile(t *testing.T) {
|
||||
Process(w, r, maxMemory)
|
||||
test.IsEqualInt(t, w.Code, 200)
|
||||
time.Sleep(time.Second)
|
||||
_, ok = datastorage.GetMetaDataById("jpLXGJKigM4hjtA6T6sN2")
|
||||
_, ok = database.GetMetaDataById("jpLXGJKigM4hjtA6T6sN2")
|
||||
test.IsEqualBool(t, ok, false)
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Manages the sessions for the admin user or to access password-protected files
|
||||
*/
|
||||
|
||||
import (
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"net/http"
|
||||
@@ -25,7 +25,7 @@ func IsValidSession(w http.ResponseWriter, r *http.Request) bool {
|
||||
if err == nil {
|
||||
sessionString := cookie.Value
|
||||
if sessionString != "" {
|
||||
session, ok := datastorage.GetSession(sessionString)
|
||||
session, ok := database.GetSession(sessionString)
|
||||
if ok {
|
||||
return useSession(w, sessionString, session)
|
||||
}
|
||||
@@ -40,12 +40,12 @@ func IsValidSession(w http.ResponseWriter, r *http.Request) bool {
|
||||
// Returns false if session is invalid (and deletes it)
|
||||
func useSession(w http.ResponseWriter, id string, session models.Session) bool {
|
||||
if session.ValidUntil < time.Now().Unix() {
|
||||
datastorage.DeleteSession(id)
|
||||
database.DeleteSession(id)
|
||||
return false
|
||||
}
|
||||
if session.RenewAt < time.Now().Unix() {
|
||||
CreateSession(w)
|
||||
datastorage.DeleteSession(id)
|
||||
database.DeleteSession(id)
|
||||
}
|
||||
return true
|
||||
}
|
||||
@@ -54,7 +54,7 @@ func useSession(w http.ResponseWriter, id string, session models.Session) bool {
|
||||
// If sessions parameter is nil, it will be loaded from config
|
||||
func CreateSession(w http.ResponseWriter) {
|
||||
sessionString := helper.GenerateRandomString(60)
|
||||
datastorage.SaveSession(sessionString, models.Session{
|
||||
database.SaveSession(sessionString, models.Session{
|
||||
RenewAt: time.Now().Add(time.Hour).Unix(),
|
||||
ValidUntil: time.Now().Add(cookieLifeAdmin).Unix(),
|
||||
}, cookieLifeAdmin)
|
||||
@@ -65,7 +65,7 @@ func CreateSession(w http.ResponseWriter) {
|
||||
func LogoutSession(w http.ResponseWriter, r *http.Request) {
|
||||
cookie, err := r.Cookie("session_token")
|
||||
if err == nil {
|
||||
datastorage.DeleteSession(cookie.Value)
|
||||
database.DeleteSession(cookie.Value)
|
||||
}
|
||||
writeSessionCookie(w, "", time.Now())
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package fileupload
|
||||
|
||||
import (
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/helper"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/storage"
|
||||
@@ -47,12 +47,12 @@ func parseConfig(values formOrHeader, setNewDefaults bool) models.UploadRequest
|
||||
password := values.Get("password")
|
||||
allowedDownloadsInt, err := strconv.Atoi(allowedDownloads)
|
||||
if err != nil {
|
||||
previousValues := datastorage.GetUploadDefaults()
|
||||
previousValues := database.GetUploadDefaults()
|
||||
allowedDownloadsInt = previousValues.Downloads
|
||||
}
|
||||
expiryDaysInt, err := strconv.Atoi(expiryDays)
|
||||
if err != nil {
|
||||
previousValues := datastorage.GetUploadDefaults()
|
||||
previousValues := database.GetUploadDefaults()
|
||||
expiryDaysInt = previousValues.TimeExpiry
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ func parseConfig(values formOrHeader, setNewDefaults bool) models.UploadRequest
|
||||
UnlimitedDownload: unlimitedDownload,
|
||||
UnlimitedTime: unlimitedTime,
|
||||
}
|
||||
datastorage.SaveUploadDefaults(values)
|
||||
database.SaveUploadDefaults(values)
|
||||
}
|
||||
settings := configuration.Get()
|
||||
return models.UploadRequest{
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/forceu/gokapi/internal/configuration"
|
||||
"github.com/forceu/gokapi/internal/configuration/datastorage"
|
||||
"github.com/forceu/gokapi/internal/configuration/database"
|
||||
"github.com/forceu/gokapi/internal/models"
|
||||
"github.com/forceu/gokapi/internal/test"
|
||||
"github.com/forceu/gokapi/internal/test/testconfiguration"
|
||||
@@ -32,16 +32,16 @@ func TestParseConfig(t *testing.T) {
|
||||
password: "123",
|
||||
}
|
||||
config := parseConfig(data, false)
|
||||
defaults := datastorage.GetUploadDefaults()
|
||||
defaults := database.GetUploadDefaults()
|
||||
test.IsEqualInt(t, config.AllowedDownloads, 9)
|
||||
test.IsEqualString(t, config.Password, "123")
|
||||
test.IsEqualInt(t, config.Expiry, 5)
|
||||
|
||||
test.IsEqualInt(t, defaults.Downloads, 3)
|
||||
config = parseConfig(data, true)
|
||||
defaults = datastorage.GetUploadDefaults()
|
||||
defaults = database.GetUploadDefaults()
|
||||
test.IsEqualInt(t, defaults.Downloads, 9)
|
||||
datastorage.SaveUploadDefaults(models.LastUploadValues{Downloads: 3, TimeExpiry: 20})
|
||||
database.SaveUploadDefaults(models.LastUploadValues{Downloads: 3, TimeExpiry: 20})
|
||||
data.allowedDownloads = ""
|
||||
data.expiryDays = "invalid"
|
||||
config = parseConfig(data, false)
|
||||
|
||||
Reference in New Issue
Block a user