Skip to content

Instantly share code, notes, and snippets.

@LucasPadovan
Last active December 26, 2015 19:09
Show Gist options
  • Save LucasPadovan/7199618 to your computer and use it in GitHub Desktop.
Save LucasPadovan/7199618 to your computer and use it in GitHub Desktop.
Zendesk_api gem version 1.1.1
###########################################################################################################################
Using ruby 1.9.2 -p125 with /api/v2 part.
[1] pry(main)> class CustomerService
[1] pry(main)* require 'zendesk_api'
[1] pry(main)*
[1] pry(main)* class << self
[1] pry(main)* def get_api_client
[1] pry(main)* ZendeskAPI::Client.new do |config|
[1] pry(main)* config.url = 'https://eventioztest.zendesk.com/api/v2'
[1] pry(main)* config.username = 'lucas@pass458878=.com'
[1] pry(main)* config.password = 'pass458878='
[1] pry(main)* config.allow_http = true
[1] pry(main)* config.retry = true
[1] pry(main)* require 'logger'
[1] pry(main)* config.logger = Logger.new(STDOUT)
[1] pry(main)* end
[1] pry(main)* end
[1] pry(main)* end
[1] pry(main)* end
=> nil
[2] pry(main)> client = CustomerService.get_api_client
=> #<ZendeskAPI::Client:0x00000001ac2de8
@callbacks=
[#<Proc:0x00000001f42648@/home/lucas/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/zendesk_api-1.1.1/lib/zendesk_api/client.rb:206>],
@config=
#<ZendeskAPI::Configuration:0x00000001ac2dc0
@allow_http=true,
@cache=
#<ZendeskAPI::LRUCache:0x00000001ac2d48 @lru=[], @size=1000, @store={}>,
@client_options={},
@logger=
#<Logger:0x000000022720c0
@default_formatter=
#<Logger::Formatter:0x00000002274398 @datetime_format=nil>,
@formatter=nil,
@level=0,
@logdev=
#<Logger::LogDevice:0x00000002274438
@dev=#<IO:<STDOUT>>,
@filename=nil,
@mutex=
#<Logger::LogDevice::LogDeviceMutex:0x00000001f41928
@mon_count=0,
@mon_mutex=#<Mutex:0x00000001f419a0>,
@mon_owner=nil>,
@shift_age=nil,
@shift_size=nil>,
@progname=nil>,
@password="pass458878=",
@retry=true,
@url="https://eventioztest.zendesk.com/api/v2",
@username="lucas@test.com">,
@resource_cache={}>
[3] pry(main)> client.tickets
=> ticket collection [path=tickets]
[4] pry(main)> client.tickets.first
I, [2013-10-28T12:18:14.730710 #24609] INFO -- : get https://eventioztest.zendesk.com/api/v2/tickets
D, [2013-10-28T12:18:14.730816 #24609] DEBUG -- : Accept: "application/json"
Accept-Encoding: "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
User-Agent: "ZendeskAPI API 1.1.1"
I, [2013-10-28T12:18:19.052104 #24609] INFO -- : Status 200
D, [2013-10-28T12:18:19.073165 #24609] DEBUG -- : server: "nginx/1.4.2"
date: "Mon, 28 Oct 2013 15:18:18 GMT"
content-type: "application/json; charset=utf-8"
transfer-encoding: "chunked"
connection: "close"
status: "200 OK"
x-zendesk-api-version: "v2"
x-runtime: "196"
cache-control: "private, max-age=0, must-revalidate"
x-zendesk-origin-server: "app20.pod1.ord.zdsys.com"
x-zendesk-user-id: "449360538"
x-zendesk-request-id: "384df08eee9018f67f37"
x-content-type-options: "nosniff"
content-encoding: "gzip"
{"tickets"=> "lots of tickets yay!"}
###########################################################################################################################
Using ruby 2.0.0, there are small differences, but works.
[2] pry(main)> client = CustomerService.get_api_client
=> #<ZendeskAPI::Client:0x007f77c3c9a8a0
@callbacks=
[#<Proc:0x007f77c3c41908@/home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/client.rb:206>],
@config=
#<ZendeskAPI::Configuration:0x007f77c3c9a850
@allow_http=true,
@cache=
#<ZendeskAPI::LRUCache:0x007f77c3c9a7b0 @lru=[], @size=1000, @store={}>,
@client_options={},
@logger=
#<Logger:0x007f77c3c43aa0
@default_formatter=
#<Logger::Formatter:0x007f77c3c41b88 @datetime_format=nil>,
@formatter=nil,
@level=0,
@logdev=
#<Logger::LogDevice:0x007f77c3c41b10
@dev=#<IO:<STDOUT>>,
@filename=nil,
@mutex=
#<Logger::LogDevice::LogDeviceMutex:0x007f77c3c41ac0
@mon_count=0,
@mon_mutex=#<Mutex:0x007f77c3c41a70>,
@mon_owner=nil>,
@shift_age=nil,
@shift_size=nil>,
@progname=nil>,
@password="pass458878=",
@retry=true,
@url="https://eventioztest.zendesk.com/api/v2",
@username="lucas@test.com">,
@resource_cache={}>
[3] pry(main)> client.tickets
=> #<ZendeskAPI::Collection:0x007f77c3c05430
@association=
#<ZendeskAPI::Association:0x007f77c3c052a0
@options={"path"=>nil, "class"=>ZendeskAPI::Ticket}>,
@client=
#<ZendeskAPI::Client:0x007f77c3c9a8a0
@callbacks=
[#<Proc:0x007f77c3c41908@/home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/client.rb:206>],
@config=
#<ZendeskAPI::Configuration:0x007f77c3c9a850
@allow_http=true,
@cache=
#<ZendeskAPI::LRUCache:0x007f77c3c9a7b0 @lru=[], @size=1000, @store={}>,
@client_options={},
@logger=
#<Logger:0x007f77c3c43aa0
@default_formatter=
#<Logger::Formatter:0x007f77c3c41b88 @datetime_format=nil>,
@formatter=nil,
@level=0,
@logdev=
#<Logger::LogDevice:0x007f77c3c41b10
@dev=#<IO:<STDOUT>>,
@filename=nil,
@mutex=
#<Logger::LogDevice::LogDeviceMutex:0x007f77c3c41ac0
@mon_count=0,
@mon_mutex=#<Mutex:0x007f77c3c41a70>,
@mon_owner=nil>,
@shift_age=nil,
@shift_size=nil>,
@progname=nil>,
@password="pass458878=",
@retry=true,
@url="https://eventioztest.zendesk.com/api/v2",
@username="lucas@test.com">,
@resource_cache=
{"tickets"=>
{:class=>ZendeskAPI::Ticket,
:cache=>
#<ZendeskAPI::LRUCache:0x007f77c3c06ee8
@lru=[0],
@size=10,
@store={0=>#<ZendeskAPI::Collection:0x007f77c3c05430 ...>}>}}>,
@collection_path=["tickets"],
@fetchable=true,
@includes=[],
@options={},
@resource="tickets",
@resource_class=ZendeskAPI::Ticket,
@verb=nil>
[4] pry(main)> client.tickets.all
I, [2013-10-28T12:42:25.704185 #24932] INFO -- : get https://eventioztest.zendesk.com/api/v2/tickets
D, [2013-10-28T12:42:25.704306 #24932] DEBUG -- : Accept: "application/json"
Accept-Encoding: "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
User-Agent: "ZendeskAPI API 1.1.1"
I, [2013-10-28T12:42:27.605182 #24932] INFO -- : Status 200
D, [2013-10-28T12:42:27.607411 #24932] DEBUG -- : server: "nginx/1.4.2"
date: "Mon, 28 Oct 2013 15:42:27 GMT"
content-type: "application/json; charset=utf-8"
transfer-encoding: "chunked"
connection: "close"
status: "200 OK"
x-zendesk-api-version: "v2"
x-runtime: "457"
cache-control: "private, max-age=0, must-revalidate"
x-zendesk-origin-server: "app32.pod1.ord.zdsys.com"
x-zendesk-user-id: "449360538"
x-zendesk-request-id: "529119140d1676513213"
x-content-type-options: "nosniff"
content-encoding: "gzip"
{"tickets"=> "lots of tickets!"}
So we know that it works with ruby 1.9.2 and 2.0, lets try rails now...
###########################################################################################################################
Ruby 1.9.2 -p125 using Rails 4 AND using Ruby 2.0 using Rails 4 we get an error at the end...
irb(main):003:0> c = CustomerService.get_api_client
=> #<ZendeskAPI::Client:0x007f76cf086b80 @config=#<ZendeskAPI::Configuration:0x007f76cf086a90 @client_options={}, @cache=#<ZendeskAPI::LRUCache:0x007f76cf0869a0 @size=1000, @store={}, @lru=[]>, @url="https://eventioztest.zendesk.com/api/v2", @username="lucas@test.com", @password="pass458878=", @allow_http=true, @retry=true, @logger=#<Logger:0x007f76cf0864f0 @progname=nil, @level=0, @default_formatter=#<Logger::Formatter:0x007f76cf0864c8 @datetime_format=nil>, @formatter=nil, @logdev=#<Logger::LogDevice:0x007f76cf086478 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x007f76cf0863b0 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007f76cf0861d0>>>>>, @callbacks=[#<Proc:0x007f76cf085dc0@/home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/client.rb:206>], @resource_cache={}>
irb(main):004:0> c.tickets
=> #<ZendeskAPI::Collection:0x007f76cf16ebd8 @resource="tickets", @resource_class=ZendeskAPI::Ticket, @client=#<ZendeskAPI::Client:0x007f76cf086b80 @config=#<ZendeskAPI::Configuration:0x007f76cf086a90 @client_options={}, @cache=#<ZendeskAPI::LRUCache:0x007f76cf0869a0 @size=1000, @store={}, @lru=[]>, @url="https://eventioztest.zendesk.com/api/v2", @username="lucas@test.com", @password="pass458878=", @allow_http=true, @retry=true, @logger=#<Logger:0x007f76cf0864f0 @progname=nil, @level=0, @default_formatter=#<Logger::Formatter:0x007f76cf0864c8 @datetime_format=nil>, @formatter=nil, @logdev=#<Logger::LogDevice:0x007f76cf086478 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x007f76cf0863b0 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007f76cf0861d0>>>>>, @callbacks=[#<Proc:0x007f76cf085dc0@/home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/client.rb:206>], @resource_cache={"tickets"=>{:class=>ZendeskAPI::Ticket, :cache=>#<ZendeskAPI::LRUCache:0x007f76cf154058 @size=10, @store={0=>#<ZendeskAPI::Collection:0x007f76cf16ebd8 ...>}, @lru=[0]>}}>, @options=#<Hashie::Mash>, @collection_path=["tickets"], @association=#<ZendeskAPI::Association:0x007f76cf16ea98 @options=#<Hashie::Mash class=ZendeskAPI::Ticket path=nil>>, @verb=nil, @includes=[], @fetchable=true>
irb(main):005:0> c.tickets.all
I, [2013-10-28T12:51:48.717563 #25041] INFO -- : get https://eventioztest.zendesk.com/api/v2/tickets
D, [2013-10-28T12:51:48.717773 #25041] DEBUG -- : Accept: "application/json"
Accept-Encoding: "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
User-Agent: "ZendeskAPI API 1.1.1"
I, [2013-10-28T12:51:51.629373 #25041] INFO -- : Status 200
D, [2013-10-28T12:51:51.631635 #25041] DEBUG -- : server: "nginx/1.4.2"
date: "Mon, 28 Oct 2013 15:51:51 GMT"
content-type: "application/json; charset=utf-8"
transfer-encoding: "chunked"
connection: "close"
status: "200 OK"
x-zendesk-api-version: "v2"
x-runtime: "176"
cache-control: "private, max-age=0, must-revalidate"
x-zendesk-origin-server: "app23.pod1.ord.zdsys.com"
x-zendesk-user-id: "449360538"
x-zendesk-request-id: "bed36232428b1ef57561"
x-content-type-options: "nosniff"
content-encoding: "gzip"
{"tickets"=> "lots_of_tickets...but"}
NoMethodError: undefined method `arity' for nil:NilClass
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:312:in `block in _all'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:405:in `each'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:405:in `array_method'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:271:in `method_missing'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:309:in `_all'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/zendesk_api-1.1.1/lib/zendesk_api/collection.rb:201:in `all'
from (irb):5
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
from /home/lucas/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment