Method: Line::Bot::V2::WebhookParser#parse
- Defined in:
- lib/line/bot/v2/webhook_parser.rb
#parse(body:, signature:) ⇒ Array<Line::Bot::V2::Webhook::Event>
Parse events from the raw request body and validate the signature.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/line/bot/v2/webhook_parser.rb', line 71 def parse(body:, signature:) should_skip = @skip_signature_verification&.call || false unless should_skip == true || verify_signature(body: body, signature: signature) raise InvalidSignatureError.new("Invalid signature: #{signature}") end data = JSON.parse(body.chomp, symbolize_names: true) data = Line::Bot::V2::Utils.deep_underscore(data) data = Line::Bot::V2::Utils.deep_convert_reserved_words(data) data = Line::Bot::V2::Utils.deep_symbolize(data) data[:events].map do |event| Line::Bot::V2::Webhook::Event.create(**event) # steep:ignore end end |