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

welovemedia / ffmate / 18140421758

30 Sep 2025 06:56PM UTC coverage: 62.189% (-1.7%) from 63.886%
18140421758

push

github

YoSev
feat: add retries to tasks and presets

15 of 43 new or added lines in 4 files covered. (34.88%)

75 existing lines in 4 files now uncovered.

2250 of 3618 relevant lines covered (62.19%)

13.58 hits per line

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

94.64
/internal/database/model/task.go
1
package model
2

3
import (
4
        "github.com/welovemedia/ffmate/v2/internal/dto"
5
        "gorm.io/gorm"
6
)
7

8
type Task struct {
9
        OutputFile       *dto.RawResolved       `gorm:"type:jsonb"`
10
        Client           *Client                `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;foreignKey:ClientIdentifier;references:Identifier"`
11
        PostProcessing   *dto.PrePostProcessing `gorm:"type:jsonb"`
12
        PreProcessing    *dto.PrePostProcessing `gorm:"type:jsonb"`
13
        Webhooks         *dto.DirectWebhooks    `gorm:"type:jsonb"`
14
        Metadata         *dto.MetadataMap       `gorm:"serializer:json"`
15
        Command          *dto.RawResolved       `gorm:"type:jsonb"`
16
        InputFile        *dto.RawResolved       `gorm:"type:jsonb"`
17
        DeletedAt        gorm.DeletedAt         `gorm:"index"`
18
        Name             string
19
        Source           dto.TaskSource
20
        Status           dto.TaskStatus `gorm:"index"`
21
        Error            string
22
        ClientIdentifier string `gorm:"index"`
23
        UUID             string
24
        Batch            string
25
        Priority         uint
26
        Retries          int
27
        Retried          int
28
        Remaining        float64
29
        UpdatedAt        int64 `gorm:"autoUpdateTime:milli"`
30
        ID               uint  `gorm:"primarykey"`
31
        Progress         float64
32
        CreatedAt        int64 `gorm:"autoCreateTime:milli"`
33
        StartedAt        int64
34
        FinishedAt       int64
UNCOV
35
}
×
UNCOV
36

×
37
func (m *Task) ToDTO() *dto.Task {
41✔
38
        d := &dto.Task{
41✔
39
                UUID: m.UUID,
41✔
40

41✔
41
                Name:  m.Name,
41✔
42
                Batch: m.Batch,
41✔
43

41✔
44
                Command:    m.Command,
41✔
45
                InputFile:  m.InputFile,
41✔
46
                OutputFile: m.OutputFile,
41✔
47

41✔
48
                Metadata: m.Metadata,
41✔
49

41✔
50
                Status:    m.Status,
41✔
51
                Progress:  m.Progress,
41✔
52
                Remaining: m.Remaining,
41✔
53

41✔
54
                Retries: m.Retries,
41✔
55
                Retried: m.Retried,
41✔
56

41✔
57
                Error: m.Error,
41✔
58

41✔
59
                Source: m.Source,
41✔
60

41✔
61
                Priority: m.Priority,
41✔
62

41✔
63
                Webhooks: m.Webhooks,
41✔
64

41✔
65
                PreProcessing:  m.PreProcessing,
41✔
66
                PostProcessing: m.PostProcessing,
41✔
67

41✔
68
                StartedAt:  m.StartedAt,
41✔
69
                FinishedAt: m.FinishedAt,
41✔
70

41✔
71
                CreatedAt: m.CreatedAt,
41✔
72
                UpdatedAt: m.UpdatedAt,
41✔
73
        }
41✔
74

41✔
75
        if m.Client != nil {
82✔
76
                d.Client = &dto.Client{
41✔
77
                        Identifier: m.Client.Identifier,
41✔
78
                        Session:    m.Client.Session,
41✔
79
                        Cluster:    m.Client.Cluster,
41✔
80
                        OS:         m.Client.OS,
41✔
81
                        Arch:       m.Client.Arch,
41✔
82
                        Version:    m.Client.Version,
41✔
83
                        LastSeen:   m.Client.LastSeen,
41✔
84
                }
41✔
85
        }
41✔
UNCOV
86

×
87
        return d
41✔
88
}
89

90
func (Task) TableName() string {
44✔
91
        return "tasks"
44✔
92
}
44✔
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