Semaphore/db/sql/schedule.go

90 lines
2.2 KiB
Go
Raw Normal View History

2021-09-06 13:05:10 +02:00
package sql
import (
"database/sql"
"github.com/ansible-semaphore/semaphore/db"
)
func (d *SqlDb) CreateSchedule(schedule db.Schedule) (newSchedule db.Schedule, err error) {
insertID, err := d.insert(
"id",
"insert into project__schedule (project_id, template_id, cron_format, repository_id)"+
"values (?, ?, ?, ?)",
2021-09-06 13:05:10 +02:00
schedule.ProjectID,
schedule.TemplateID,
schedule.CronFormat,
schedule.RepositoryID)
2021-09-06 13:05:10 +02:00
if err != nil {
return
}
newSchedule = schedule
newSchedule.ID = insertID
return
}
func (d *SqlDb) SetScheduleLastCommitHash(projectID int, scheduleID int, lastCommentHash string) error {
_, err := d.exec("update project__schedule set "+
"last_commit_hash=? "+
"where project_id=? and id=?",
lastCommentHash,
projectID,
scheduleID)
return err
}
2021-09-06 13:05:10 +02:00
func (d *SqlDb) UpdateSchedule(schedule db.Schedule) error {
_, err := d.exec("update project__schedule set "+
2022-01-19 11:30:22 +01:00
"cron_format=?, "+
2022-01-30 18:43:15 +01:00
"repository_id=?, "+
"last_commit_hash = NULL "+
"where project_id=? and id=?",
2021-09-06 13:05:10 +02:00
schedule.CronFormat,
schedule.RepositoryID,
2021-09-06 13:05:10 +02:00
schedule.ProjectID,
schedule.ID)
return err
}
func (d *SqlDb) GetSchedule(projectID int, scheduleID int) (template db.Schedule, err error) {
err = d.selectOne(
&template,
"select * from project__schedule where project_id=? and id=?",
projectID,
scheduleID)
if err == sql.ErrNoRows {
err = db.ErrNotFound
}
return
}
func (d *SqlDb) DeleteSchedule(projectID int, scheduleID int) error {
2021-09-09 20:56:15 +02:00
_, err := d.exec("delete from project__schedule where project_id=? and id=?", projectID, scheduleID)
2021-09-06 13:05:10 +02:00
return err
}
func (d *SqlDb) GetSchedules() (schedules []db.Schedule, err error) {
2021-09-06 14:55:26 +02:00
_, err = d.selectAll(&schedules, "select * from project__schedule where cron_format != ''")
2021-09-06 13:05:10 +02:00
return
}
func (d *SqlDb) GetTemplateSchedules(projectID int, templateID int) (schedules []db.Schedule, err error) {
_, err = d.selectAll(&schedules,
2021-09-06 14:55:26 +02:00
"select * from project__schedule where project_id=? and template_id=?",
2021-09-06 13:05:10 +02:00
projectID,
templateID)
return
}
2022-01-30 18:43:15 +01:00
func (d *SqlDb) SetScheduleCommitHash(projectID int, scheduleID int, hash string) error {
_, err := d.exec("update project__schedule set last_commit_hash=? where project_id=? and id=?",
hash,
projectID,
scheduleID)
return err
}