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

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

06 Jul 2025 09:26AM UTC coverage: 24.661% (-0.08%) from 24.745%
16097566485

push

github

johannes
added logs to database init

0 of 6 new or added lines in 1 file covered. (0.0%)

218 of 884 relevant lines covered (24.66%)

0.59 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"
6

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

10
func NewDatabase(connectionString string, resourcePath string) (database DatabaseService, err error) {
×
11
        var dbInstance DatabaseService
×
12
        dbType := getDatabaseType(connectionString)
×
13

×
14
        switch dbType {
×
15
        case "sqlite":
×
16
                dbInstance = NewSQLiteDatabase(connectionString)
×
17
        default:
×
18
                return nil, fmt.Errorf("unsupported database type: %s", dbType)
×
19
        }
20

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

35
        addPreexistingElements(dbInstance, resourcePath)
×
36

×
37
        return dbInstance, nil
×
38
}
39

40
func getDatabaseType(connectionString string) string {
×
41
        if connectionString == "" {
×
42
                return "sqlite"
×
43
        }
×
44
        if len(connectionString) > 7 && connectionString[:7] == "sqlite:" {
×
45
                return "sqlite"
×
46
        }
×
47
        // Add more database types as needed
48
        return "unknown"
×
49
}
50

51
func addPreexistingElements(database DatabaseService, resourcePath string) {
×
52
        if database == nil {
×
53
                return
×
54
        }
×
55

NEW
56
        log.Print("discovering preexisting audio files in resource path: ", resourcePath)
×
57
        filePaths, err := filemanagement.GetAudioFiles(resourcePath)
×
58

×
59
        if err != nil {
×
NEW
60
                fmt.Printf("error initializing database while retrieving audio files: %v\n", err)
×
61
                return
×
62
        }
×
63

64
        for _, file := range filePaths {
×
65
                podcastItem, err := NewPodcastItem(file)
×
66
                if err != nil {
×
NEW
67
                        fmt.Printf("error creating podcast item for file %s: %v\n", file, err)
×
68
                        continue
×
69
                }
70

71
                err = database.CreatePodcastItem(podcastItem)
×
72
                if err != nil {
×
NEW
73
                        fmt.Printf("error saving podcast item for file %s: %v\n", file, err)
×
74
                }
×
75
        }
76
}
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