Class: Kward::RPC::AttachmentNormalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/kward/rpc/attachment_normalizer.rb

Overview

Validates and normalizes RPC image attachments.

Constant Summary collapse

IMAGE_MIME_TYPES =
["image/png", "image/jpeg", "image/gif", "image/webp"].freeze
MAX_BYTES =
10 * 1024 * 1024

Instance Method Summary collapse

Constructor Details

#initialize(max_bytes: MAX_BYTES, mime_types: IMAGE_MIME_TYPES) ⇒ AttachmentNormalizer

Returns a new instance of AttachmentNormalizer.



13
14
15
16
# File 'lib/kward/rpc/attachment_normalizer.rb', line 13

def initialize(max_bytes: MAX_BYTES, mime_types: IMAGE_MIME_TYPES)
  @max_bytes = max_bytes
  @mime_types = mime_types
end

Instance Method Details

#normalize(attachments) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
23
# File 'lib/kward/rpc/attachment_normalizer.rb', line 18

def normalize(attachments)
  return [] if attachments.nil?
  raise ArgumentError, "attachments must be an array" unless attachments.is_a?(Array)

  attachments.map { |attachment| normalize_attachment(attachment) }
end