Class: CommandTower::Deserializers::Messaging::Inbox::ListDeserializer
- Inherits:
-
ApplicationDeserializer
- Object
- ApplicationDeserializer
- CommandTower::Deserializers::Messaging::Inbox::ListDeserializer
- Defined in:
- app/deserializers/command_tower/deserializers/messaging/inbox.rb
Defined Under Namespace
Classes: Input
Constant Summary collapse
- DEFAULT_LIMIT =
50- MAX_LIMIT =
100- ALLOWED_SCOPES =
%w[inbox archived].freeze
Instance Method Summary collapse
Methods inherited from ApplicationDeserializer
Instance Method Details
#call(params) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/deserializers/command_tower/deserializers/messaging/inbox.rb', line 13 def call(params) limit = integer(params[:limit], default: DEFAULT_LIMIT, minimum: 1, maximum: MAX_LIMIT) return failure(errors: { message: "invalid_limit" }) if limit.nil? offset = integer(params[:offset], default: 0, minimum: 0) return failure(errors: { message: "invalid_offset" }) if offset.nil? scope = params[:scope].presence || "inbox" return failure(errors: { message: "invalid_scope" }) unless scope.is_a?(String) && ALLOWED_SCOPES.include?(scope.strip) success(Input.new(limit:, offset:, scope: scope.strip)) end |