/
runwebhookdelivery.go
49 lines (39 loc) · 1.17 KB
/
runwebhookdelivery.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package types
import (
"time"
"github.com/sorintlab/errors"
"agola.io/agola/internal/sqlg"
"agola.io/agola/internal/sqlg/sql"
)
type DeliveryStatus string
const (
DeliveryStatusNotDelivered DeliveryStatus = "notDelivered"
DeliveryStatusDelivered DeliveryStatus = "delivered"
DeliveryStatusDeliveryError DeliveryStatus = "deliveryError"
)
func DeliveryStatusFromStringSlice(slice []string) ([]DeliveryStatus, error) {
dss := make([]DeliveryStatus, len(slice))
for i, s := range slice {
val := DeliveryStatus(s)
switch val {
case DeliveryStatusNotDelivered, DeliveryStatusDelivered, DeliveryStatusDeliveryError:
dss[i] = val
default:
return nil, errors.Errorf("invalid delivery status %q", val)
}
}
return dss, nil
}
type RunWebhookDelivery struct {
sqlg.ObjectMeta
Sequence uint64 `json:"sequence"`
RunWebhookID string `json:"run_webhook_id"`
DeliveryStatus DeliveryStatus `json:"delivery_status"`
DeliveredAt *time.Time `json:"delivered_at"`
StatusCode int `json:"status_code"`
}
func NewRunWebhookDelivery(tx *sql.Tx) *RunWebhookDelivery {
return &RunWebhookDelivery{
ObjectMeta: sqlg.NewObjectMeta(tx),
}
}