Module: SlackValidBlockKit::Validator::Surface
- Included in:
- Runner
- Defined in:
- lib/slack_valid_block_kit/validator/surface.rb
Constant Summary collapse
- MODAL_PROPERTIES =
i(type title blocks close submit callback_id clear_on_close notify_on_close external_id)
- HOME_PROPERTIES =
i(type blocks callback_id external_id)
Instance Method Summary collapse
- #validate_blocks(hash, path, options = nil) ⇒ Object
- #validate_home(hash, path, options = nil) ⇒ Object
- #validate_modal(hash, path, options = nil) ⇒ Object
Instance Method Details
#validate_blocks(hash, path, options = nil) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/slack_valid_block_kit/validator/surface.rb', line 45 def validate_blocks(hash, path, = nil) validate_for(hash[:blocks], "#{path}.blocks", Array, true) Array(hash[:blocks]).each_with_index do |e, i| validate(e, "#{path}.blocks[#{i}]", :layout_blocks_for_message) end end |
#validate_home(hash, path, options = nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/slack_valid_block_kit/validator/surface.rb', line 30 def validate_home(hash, path, = nil) validate_for_properties(hash, path, HOME_PROPERTIES) validate_for(hash[:type], "#{path}.type", String, true, only: ["home"]) validate_for_plain_text(hash[:title], "#{path}.title", true, 24) validate_for(hash[:blocks], "#{path}.blocks", Array, true, max: 100) Array(hash[:blocks]).each_with_index do |e, i| validate(e, "#{path}.blocks[#{i}]", :layout_blocks_for_home) end validate_for(hash[:private_metadata], "#{path}.private_metadata", String, false, max: 3000) validate_for(hash[:callback_id], "#{path}.callback_id", String, false, max: 255) validate_for(hash[:external_id], "#{path}.external_id", String, false) end |
#validate_modal(hash, path, options = nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/slack_valid_block_kit/validator/surface.rb', line 6 def validate_modal(hash, path, = nil) validate_for_properties(hash, path, MODAL_PROPERTIES) validate_for(hash[:type], "#{path}.type", String, true, only: ["modal"]) validate_for_plain_text(hash[:title], "#{path}.title", true, 24) validate_for(hash[:blocks], "#{path}.blocks", Array, true, max: 100) Array(hash[:blocks]).each_with_index do |e, i| validate(e, "#{path}.blocks[#{i}]", :layout_blocks_for_modal) end validate_for_plain_text(hash[:close], "#{path}.close", false, 24) validate_for_plain_text(hash[:submit], "#{path}.submit", false, 24) if hash[:submit].nil? && Array(hash[:blocks]).select { |b| b[:type] == "input" }.size > 0 add_error(path, :require_submit_with_input) end validate_for(hash[:private_metadata], "#{path}.private_metadata", String, false, max: 3000) validate_for(hash[:callback_id], "#{path}.callback_id", String, false, max: 255) validate_for(hash[:clear_on_close], "#{path}.clear_on_close", :bool, false) validate_for(hash[:notify_on_close], "#{path}.notify_on_close", :bool, false) validate_for(hash[:external_id], "#{path}.external_id", String, false) end |