Skip to content

[BUG] Filter all messages does not work as described in documentation #454

Open
@shelmire

Description

@shelmire

Issue Summary

Getting messages via the described steps in the documentation does not work. Note that below I demonstrate that the example code fails.

Steps to Reproduce

  1. Create a script with the following code (code copied exactly from the initialize step and this section), per https://github.com/sendgrid/sendgrid-ruby/blob/main/USAGE.md#email-activity .

  2. Execute the script.

  3. Observe error.

  4. Note that what I really want to do is get any email status updates within the past hour or so (5 mins in example) with something like this, which should probably work according to https://sendgrid.com/docs/for-developers/sending-email/getting-started-email-activity-api/#creating-compound-queries:

filter_key = 'last_event_time'
filter_operator = ERB::Util.url_encode('>')
filter_value = (Time.now - 300).utc.strftime('%Y-%m-%dT%H:%M:%S.%L%z') # check the last 5 minutes
filter_value = ERB::Util.url_encode(format('"%s"', filter_value))
query_params = {}
query_params['query'] = format("%s%s%s", filter_key, filter_operator, filter_value)
query_params['limit'] = '10000'

Code Snippet

require 'sendgrid-ruby'

sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])

require 'erb'

filter_key = 'to_email'
filter_operator = ERB::Util.url_encode('=')
filter_value = 'testing@sendgrid.net'
filter_value = ERB::Util.url_encode(format('"%s"', filter_value))
query_params = {}
query_params['query'] = format("%s%s%s", filter_key, filter_operator, filter_value)
query_params['limit'] = '1'

params = query_params
response = sg.client.messages.get(query_params: params)
puts response.status_code
puts response.body
puts response.headers

Exception/Log

400
{"errors":[{"message":"error parsing input at line 1, position 11: syntax error: unexpected IDENTIFIER","field":"query"}]}
{"server"=>["nginx"], "date"=>["Fri, 08 Jan 2021 14:43:14 GMT"], "content-type"=>["application/json"], "content-length"=>["123"], "connection"=>["close"], "x-request-id"=>["b753cf16-8c0b-43c4-9301-275a2d002678"], "access-control-allow-methods"=>["HEAD, GET, PUT, POST, DELETE, OPTIONS, PATCH"], "access-control-max-age"=>["21600"], "access-control-expose-headers"=>["Link, Location"], "access-control-allow-origin"=>["*"], "access-control-allow-headers"=>["AUTHORIZATION, Content-Type, On-behalf-of, x-sg-elas-acl, X-Recaptcha, X-Request-Source, Browser-Fingerprint"], "content-security-policy"=>["default-src https://api.sendgrid.com; frame-src 'none'; object-src 'none'"], "x-content-type-options"=>["nosniff"], "strict-transport-security"=>["max-age=31536000"], "x-client-ff"=>["1000"], "x-ratelimit-remaining"=>["7"], "x-ratelimit-limit"=>["10"], "x-ratelimit-reset"=>["1610117100"]}

Technical details:

  • sendgrid-ruby version: tried with 6.3.8 and 6.3.3
  • ruby version: ruby 2.6.6p146

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions