Source File
cron_jobs.go
Belonging Package
github.com/limanmys/render-engine/app/handlers
package handlers
import (
)
// CreateCronJob creates new cron job
func ( *fiber.Ctx) error {
// Parse payload
var models.CronJob
if := .BodyParser(&); != nil {
return
}
, := uuid.Parse(.FormValue("extension_id"))
if != nil {
return errors.New("invalid extension id")
}
, := uuid.Parse(.FormValue("user_id"))
if != nil {
return errors.New("invalid user id")
}
, := uuid.Parse(.FormValue("server_id"))
if != nil {
return errors.New("invalid server id")
}
// Fill default fields
:= models.NewCronJob()
.ID = .ID
.Status = .Status
.Message = .Message
.BaseURL = "https://127.0.0.1"
.ExtensionID = &
.ServerID = &
.UserID = &
// Create cronjob rule on db
if := database.Connection().Model(&models.CronJob{}).Create(&).Error; != nil {
return
}
// Register and run cronjob
if := cron_jobs.RegisterAndRun(&); != nil {
return
}
return .JSON("Cronjob registered successfully.")
}
// IndexCronJobs lists all cron jobs
func ( *fiber.Ctx) error {
// Set empty variable for later use
var []*models.CronJob
// Get all cronjobs
if := database.Connection().Model(&models.CronJob{}).Find(&).Error; != nil {
return
}
return .JSON()
}
// DeleteCronJob deletes specified cron job
func ( *fiber.Ctx) error {
// Parse uuid
, := uuid.Parse(.Params("id"))
if != nil {
return
}
// Remove cronjob from global scheduler
if := cron_jobs.Delete(&); != nil {
return
}
// If cronjob successfully remove by scheduler, remove it from storage
if := database.Connection().Model(&models.CronJob{}).
Where("id = ?", ).Delete(&models.CronJob{}).Error; != nil {
return
}
return .JSON("Item deleted successfully.")
}
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |