Skip to content

Commit 6db78ae

Browse files
committed
ROute Update API: work done
1 parent 0e490f9 commit 6db78ae

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

app/messages/route_update_message.rb

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,27 @@
33
module VCAP::CloudController
44
class RouteUpdateMessage < MetadataBaseMessage
55
register_allowed_keys %i[options]
6-
# def self.register_allowed_keys(allowed_keys)
7-
# super(allowed_keys + [:options])
8-
# end
96

107
def self.options_requested?
118
@options_requested ||= proc { |a| a.requested?(:options) }
129
end
1310

11+
def options_message
12+
@options_message ||= RouteOptions.new(options&.deep_symbolize_keys)
13+
end
14+
1415
validates_with OptionsValidator, if: options_requested?
1516

1617
validates_with NoAdditionalKeysValidator
1718

19+
class RouteOptions < BaseMessage
20+
register_allowed_keys %i[lb_algo]
21+
validates_with NoAdditionalKeysValidator
22+
validates :lb_algo,
23+
inclusion: { in: %w[least-connections round-robin], message: "'%<value>s' is not a supported load-balancing algorithm" },
24+
presence: true,
25+
allow_nil: true
26+
end
27+
1828
end
1929
end

app/messages/validators.rb

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -251,15 +251,13 @@ def validate(record)
251251
return
252252
end
253253

254-
return
255-
256-
# opt = record.options_message
257-
#
258-
# return if opt.valid?
259-
#
260-
# opt.errors.full_messages.each do |message|
261-
# record.errors.add(:options, message:)
262-
# end
254+
opt = record.options_message
255+
256+
return if opt.valid?
257+
258+
opt.errors.full_messages.each do |message|
259+
record.errors.add(:options, message:)
260+
end
263261
end
264262
end
265263

0 commit comments

Comments
 (0)