Skip to content

Commit

Permalink
Merge pull request #158 from eagletmt/api-job-definition-params
Browse files Browse the repository at this point in the history
Add more properties to /v1/definitions APIs
  • Loading branch information
eagletmt authored Jan 21, 2025
2 parents f41c744 + 0b2d1b3 commit 960f601
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 17 deletions.
2 changes: 1 addition & 1 deletion app/controllers/kuroko2/api/job_definitions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def create_resource
end

def require_resource
definition = Kuroko2::JobDefinition.includes(:tags, :job_schedules).find(params[:id])
definition = Kuroko2::JobDefinition.includes(:tags, :job_schedules, :admins).find(params[:id])
@resource = Kuroko2::Api::JobDefinitionResource.new(definition)
end

Expand Down
35 changes: 21 additions & 14 deletions app/models/kuroko2/api/job_definition_resource.rb
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
class Kuroko2::Api::JobDefinitionResource < Kuroko2::Api::ApplicationResource
property :id

property :name

property :description

property :script

property :tags

property :cron
SIMPLE_PROPERTIES = [
:id,
:name,
:description,
:script,
:tags,
:cron,
:notify_cancellation,
:suspended,
:prevent_multi,
:slack_channel,
]
SIMPLE_PROPERTIES.each do |name|
property name
end
delegate *SIMPLE_PROPERTIES, :destroy, to: :model

def tags
property def tags
model.tags.map(&:name)
end

def cron
property def cron
model.job_schedules.map(&:cron)
end

delegate :id, :name, :description, :script, :destroy, to: :model
property def user_id
model.admins.map(&:id)
end
end
2 changes: 1 addition & 1 deletion spec/factories/job_definition_factory.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
description { 'This is description for the job definition.' }
script { "noop:\n" }
admins { build_list(:user, 1) }
prevent_multi { false }
prevent_multi { Kuroko2::JobDefinition::PreventMultiStatus::WORKING_OR_ERROR }

trait :with_revisions do
transient do
Expand Down
12 changes: 11 additions & 1 deletion spec/requests/api/job_definitions_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@
"description" => job_definition.description,
"script" => job_definition.script,
"tags" => [],
"cron"=>[],
"cron" => [],
"user_id" => [job_definition.admins[0].id],
"notify_cancellation" => true,
"suspended" => false,
"prevent_multi" => Kuroko2::JobDefinition::PreventMultiStatus::WORKING_OR_ERROR,
"slack_channel" => "",
)
end
end
Expand Down Expand Up @@ -268,6 +273,11 @@
'script' => definition.script,
'tags' => ['taggy-mc-tagface'],
'cron' => [schedule.cron],
'user_id' => [definition.admins[0].id],
'notify_cancellation' => true,
'suspended' => false,
'prevent_multi' => Kuroko2::JobDefinition::PreventMultiStatus::WORKING_OR_ERROR,
'slack_channel' => '',
}
)
expect(response.status).to eq(200)
Expand Down

0 comments on commit 960f601

Please sign in to comment.