accept_attribute_as_json :command, Array
accept_attribute_as_json :scheduling_parameters, Hash
- skip_before_filter :find_object_by_uuid, only: [:current]
- skip_before_filter :render_404_if_no_object, only: [:current]
+ skip_before_action :find_object_by_uuid, only: [:current]
+ skip_before_action :render_404_if_no_object, only: [:current]
def auth
if @object.locked_by_uuid != Thread.current[:api_client_authorization].uuid
show
end
- def update
- @object.with_lock do
- @object.reload
- super
- end
- end
-
def find_objects_for_index
super
if action_name == 'lock' || action_name == 'unlock'
# Avoid loading more fields than we need
- @objects = @objects.select(:id, :uuid, :state, :priority, :auth_uuid, :locked_by_uuid)
+ @objects = @objects.select(:id, :uuid, :state, :priority, :auth_uuid, :locked_by_uuid, :lock_count)
@select = %w(uuid state priority auth_uuid locked_by_uuid)
+ elsif action_name == 'update_priority'
+ # We're going to reload(lock: true) in the handler, which will
+ # select all attributes, but will fail if we don't select :id
+ # now.
+ @objects = @objects.select(:id, :uuid)
end
end
show
end
+ def update_priority
+ @object.update_priority!
+ show
+ end
+
def current
if Thread.current[:api_client_authorization].nil?
send_error("Not logged in", status: 401)