Class: CommandTower::Deserializers::Messaging::Inbox::BulkIdsDeserializer

Inherits:
ShowDeserializer show all
Defined in:
app/deserializers/command_tower/deserializers/messaging/inbox.rb

Defined Under Namespace

Classes: Input

Constant Summary collapse

MAX_IDS =
100

Instance Method Summary collapse

Methods inherited from ApplicationDeserializer

call

Instance Method Details

#call(params) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'app/deserializers/command_tower/deserializers/messaging/inbox.rb', line 64

def call(params)
  raw = params[:ids]
  return failure(errors: { message: "invalid_ids" }) unless raw.is_a?(Array) && raw.any? && raw.size <= MAX_IDS

  values = raw.map { |entry| positive_integer(entry) }
  return failure(errors: { message: "invalid_ids" }) if values.any?(&:nil?)

  success(Input.new(inbox_item_ids: values.uniq))
end