• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jo-hoe / video-to-podcast-service / 21748114312

06 Feb 2026 10:57AM UTC coverage: 17.708%. Remained the same
21748114312

push

github

johannes
fixed insert behavior

3 of 7 new or added lines in 5 files covered. (42.86%)

241 of 1361 relevant lines covered (17.71%)

0.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/internal/core/database/databasefactory.go
1
package database
2

3
import (
4
        "fmt"
5
        "log/slog"
6

7
        "github.com/jo-hoe/video-to-podcast-service/internal/config"
8
        "github.com/jo-hoe/video-to-podcast-service/internal/core/filemanagement"
9
)
10

11
func NewDatabase(connectionString string, resourcePath string) (database DatabaseService, err error) {
×
12
        cfg := config.GetConfig()
×
13
        var dbInstance DatabaseService
×
14

×
15
        switch cfg.Persistence.Database.Driver {
×
16
        case "sqlite3", "sqlite":
×
17
                dbInstance = NewSQLiteDatabase(connectionString)
×
18
        default:
×
19
                return nil, fmt.Errorf("unsupported database driver: %s", cfg.Persistence.Database.Driver)
×
20
        }
21

22
        if !dbInstance.DoesDatabaseExist() {
×
23
                slog.Info("database does not exist, creating new database")
×
24
                _, err = dbInstance.CreateDatabase()
×
25
                if err != nil {
×
26
                        return nil, fmt.Errorf("failed to create database: %w", err)
×
27
                }
×
28
        } else {
×
29
                slog.Info("database already exists, skipping creation.")
×
30
                _, err = dbInstance.InitializeDatabase()
×
31
                if err != nil {
×
32
                        return nil, fmt.Errorf("failed to initialize database: %w", err)
×
33
                }
×
34
        }
35

36
        addPreexistingElements(dbInstance, resourcePath)
×
37

×
38
        return dbInstance, nil
×
39
}
40

41
func addPreexistingElements(database DatabaseService, resourcePath string) {
×
42
        if database == nil {
×
43
                return
×
44
        }
×
45

46
        slog.Info("discovering preexisting audio files in resource path", "resourcePath", resourcePath)
×
47
        filePaths, err := filemanagement.GetAudioFiles(resourcePath)
×
48

×
49
        if err != nil {
×
50
                fmt.Printf("error initializing database while retrieving audio files: %v\n", err)
×
51
                return
×
52
        }
×
53

54
        for _, file := range filePaths {
×
55
                podcastItem, err := NewPodcastItem(file)
×
56
                if err != nil {
×
57
                        fmt.Printf("error creating podcast item for file %s: %v\n", file, err)
×
58
                        continue
×
59
                }
60

NEW
61
                err = database.InsertReplacePodcastItem(podcastItem)
×
62
                if err != nil {
×
63
                        fmt.Printf("error saving podcast item for file %s: %v\n", file, err)
×
64
                }
×
65
        }
66
        slog.Info("added preexisting podcast items to the database", "count", len(filePaths))
×
67
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc