2017-03-31 13:02:26 -04:00
|
|
|
# CronValidator
|
|
|
|
#
|
|
|
|
# Custom validator for Cron.
|
|
|
|
class CronValidator < ActiveModel::EachValidator
|
|
|
|
def validate_each(record, attribute, value)
|
2017-04-04 05:44:25 -04:00
|
|
|
cron_parser = Gitlab::Ci::CronParser.new(record.cron, record.cron_time_zone)
|
2017-03-31 13:02:26 -04:00
|
|
|
is_valid_cron, is_valid_cron_time_zone = cron_parser.validation
|
|
|
|
|
|
|
|
if !is_valid_cron
|
|
|
|
record.errors.add(:cron, " is invalid syntax")
|
|
|
|
elsif !is_valid_cron_time_zone
|
|
|
|
record.errors.add(:cron_time_zone, " is invalid timezone")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|