Complete support for cron pipeline triggering

This commit is contained in:
2023-04-08 16:28:00 -06:00
parent fe9e1cac15
commit 4f7b315f54
8 changed files with 186 additions and 12 deletions
+40 -4
View File
@@ -705,13 +705,49 @@ WHERE pipeline_id=$1;`
return crons, nil
}
func (db *Database) AddCronForPipeline(pipelineId uuid.UUID, cron string, pattern string) error {
func (db *Database) GetCronById(id uuid.UUID) (Cron, error) {
query := `
SELECT cron, pipeline_id, pattern
FROM crons
WHERE id=$1;`
cron := Cron{
Id: id,
}
var pipelineIdStr string
err := db.Conn.QueryRow(context.Background(), query, id).Scan(&cron.Cron, &pipelineIdStr, &cron.Pattern)
if err != nil {
return cron, fmt.Errorf("Could not query database for cron with id %v: %w", id.String(), err)
}
cron.PipelineId, err = uuid.Parse(pipelineIdStr)
return cron, err
}
func (db *Database) AddCronForPipeline(pipelineId uuid.UUID, cronStr string, pattern string) (Cron, error) {
query := `
INSERT INTO crons (id, pipeline_id, cron, pattern)
VALUES (uuid_generate_v4(), $1, $2, $3);`
VALUES (uuid_generate_v4(), $1, $2, $3)
RETURNING id;`
_, err := db.Conn.Exec(context.Background(), query, pipelineId, cron, pattern)
return err
cron := Cron{
PipelineId: pipelineId,
Cron: cronStr,
Pattern: pattern,
}
var idStr string
err := db.Conn.QueryRow(context.Background(), query, pipelineId, cronStr, pattern).Scan(&idStr)
if err != nil {
return cron, fmt.Errorf("Could not create cron: %w", err)
}
cron.Id, err = uuid.Parse(idStr)
return cron, err
}
func (db *Database) RemoveCronForPipeline(cronId uuid.UUID) error {
+4 -3
View File
@@ -81,7 +81,8 @@ type Runner struct {
}
type Cron struct {
Id uuid.UUID
Cron string
Pattern string
Id uuid.UUID
PipelineId uuid.UUID
Cron string
Pattern string
}