travis-api/lib/travis/api/v3/services/cron/create.rb
2016-03-14 12:50:39 +01:00

24 lines
891 B
Ruby

module Travis::API::V3
class Services::Cron::Create < Service
result_type :cron
params :interval, :disable_by_build
def run!
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
raise NotFound unless repository = find(:repository)
raise NotFound unless branch = find(:branch, repository)
raise Error.new('Invalid value for interval. Interval must be "daily", "weekly" or "monthly"!', status: 422) unless ["daily", "weekly", "monthly"].include?(params["interval"])
access_control.permissions(repository).create_cron!
if branch.cron
access_control.permissions(branch.cron).delete!
end
query.create(branch, params["interval"], params["disable_by_build"] ? params["disable_by_build"] : false)
end
end
end