Skip to content

Commit 2bcf339

Browse files
committed
refactor: db location
Signed-off-by: skidoodle <contact@albert.lol>
1 parent 2df37e9 commit 2bcf339

File tree

6 files changed

+29
-8
lines changed

6 files changed

+29
-8
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
storage/*
2-
# Added by goreleaser init:
32
dist/

internal/app/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const (
3636
MinRetention = 24 * time.Hour
3737
MaxRetention = 365 * 24 * time.Hour
3838

39+
DBDirName = "db"
3940
DBFileName = "safebin.db"
4041
DBBucketName = "files"
4142
DBBucketIndexName = "expiry_index"

internal/app/db.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app
22

33
import (
4+
"os"
45
"path/filepath"
56
"time"
67

@@ -15,7 +16,12 @@ type FileMeta struct {
1516
}
1617

1718
func InitDB(storageDir string) (*bbolt.DB, error) {
18-
path := filepath.Join(storageDir, DBFileName)
19+
dbDir := filepath.Join(storageDir, DBDirName)
20+
if err := os.MkdirAll(dbDir, PermUserRWX); err != nil {
21+
return nil, err
22+
}
23+
24+
path := filepath.Join(dbDir, DBFileName)
1925
db, err := bbolt.Open(path, 0600, &bbolt.Options{Timeout: 1 * time.Second})
2026
if err != nil {
2127
return nil, err

internal/app/db_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestInitDB(t *testing.T) {
2323
}
2424
}()
2525

26-
dbPath := filepath.Join(tmpDir, DBFileName)
26+
dbPath := filepath.Join(tmpDir, DBDirName, DBFileName)
2727
if _, err := os.Stat(dbPath); os.IsNotExist(err) {
2828
t.Error("Database file was not created")
2929
}

internal/app/server_test.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,17 +233,28 @@ func TestIntegration_Upload_VerifyEncryption(t *testing.T) {
233233

234234
body := &bytes.Buffer{}
235235
writer := multipart.NewWriter(body)
236-
part, _ := writer.CreateFormFile("file", "secret.txt")
237-
part.Write(plaintext)
238-
writer.Close()
236+
part, err := writer.CreateFormFile("file", "secret.txt")
237+
if err != nil {
238+
t.Fatalf("CreateFormFile failed: %v", err)
239+
}
240+
if _, err := part.Write(plaintext); err != nil {
241+
t.Fatalf("Write failed: %v", err)
242+
}
243+
if err := writer.Close(); err != nil {
244+
t.Fatalf("Writer close failed: %v", err)
245+
}
239246

240247
req, _ := http.NewRequest("POST", server.URL+"/", body)
241248
req.Header.Set("Content-Type", writer.FormDataContentType())
242249
resp, err := http.DefaultClient.Do(req)
243250
if err != nil {
244251
t.Fatal(err)
245252
}
246-
defer resp.Body.Close()
253+
defer func() {
254+
if err := resp.Body.Close(); err != nil {
255+
t.Errorf("Failed to close response body: %v", err)
256+
}
257+
}()
247258

248259
respBytes, _ := io.ReadAll(resp.Body)
249260
slug := filepath.Base(strings.TrimSpace(string(respBytes)))

internal/app/upload.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,11 @@ func (app *App) HandleUpload(writer http.ResponseWriter, request *http.Request)
6767
errChan <- err
6868
}()
6969

70-
defer pr.Close()
70+
defer func() {
71+
if closeErr := pr.Close(); closeErr != nil {
72+
app.Logger.Error("Failed to close pipe reader", "err", closeErr)
73+
}
74+
}()
7175

7276
streamer, err := crypto.NewGCMStreamer(ephemeralKey)
7377
if err != nil {

0 commit comments

Comments
 (0)