Movatterモバイル変換


[0]ホーム

URL:


Zendesk2

Zendesk API V2 client using Cistern


Project maintained bylanejHosted on GitHub Pages — Theme bymattgraham

Zendesk2

Build StatusGem VersionCode ClimateDependency Status

Ruby client for theZendesk V2 API usingcistern andfaraday. Ruby > 2.0 is required

Installation

Add this line to your application's Gemfile:

gem'zendesk2'

Or install it yourself as:

$ gem install zendesk2

Usage

Mock it!

All support resources have basic mocks. Error conditions and messaging are constantly changing. Please contribute updates or fixes to the mock if you encounter inconsistencies.

Zendesk2.mock!client=Zendesk2.new(...)# Zendesk2::Mockclient.organizations.create!(name:"foo")# Zendesk2::Organizationclient.organizations.create!(name:"foo")# Zendesk2::Error => Name has already been taken

Defaults

Default credentials will be read in from~/.zendesk2 file in YAML format.

---:url:https://www.zendesk.com:username:zendeskedge@example.com:password:wickedsecurepassword:token:reallylongrandomstringprovidedbyzendesk

Creating the client

Url is always required. Username and either password or token are always required.

Zendesk2.new(url:"http://support.cloud.engineyard.com",username:"mate",token:"asdfghjkl1qwertyuiop5zxcvbnm3")=>#<Zendesk2::Real:0x007fd1bae486b0 @url="http://support.cloud.engineyard.com", @username="mate", @token="asdfghjkl1qwertyuiop5zxcvbnm3", …>

Resources

Collections

Currently support resources:

Help Center resources:

All collection are accessed like so:

client.users.all=><Zendesk2::Users  count=1779,  next_page_link="https://dev.zendesk.com/api/v2/users.json?page=2",  previous_page_link=nil  [<Zendesk2::User      id=125394183,      url="https://dev.zendesk.com/api/v2/users/125394183.json",      ...>  ]

Collections also respond tocreate andnew

client.users.create(email:"ohhai@example.org",name:"lulz")=><Zendesk2::User  id=234020811,  ...  url="https://engineyarddev.zendesk.com/api/v2/users/234020811.json",  ...  email="ohhai@example.org",>
client.users.new(email:"ohhai@example.org")=><Zendesk2::User  id=nil,  ...  url=nil,  ...  email="ohhai@example.org",  ...>

Paging

Paged collections respond tonext_page andprevious_page when appropriate.page_size andpage can be passed directly to the collection to control size and index.

page= client.users.all("per_page" =>1,"page" =>4)=><Zendesk2::Users  count=1780,  next_page_link="https://dev.zendesk.com/api/v2/users.json?page=5&per_page=1",  previous_page_link="https://dev.zendesk.com/api/v2/users.json?page=3&per_page=1"  [<Zendesk2::User      id=217761652,      url="https://dev.zendesk.com/api/v2/users/217761652.json",      external_id=nil,      name="Guy Dude",      ...>  ]
page.next_page=><Zendesk2::Users  count=1780,  next_page_link="https://dev.zendesk.com/api/v2/users.json?page=6&per_page=1",  previous_page_link="https://dev.zendesk.com/api/v2/users.json?page=4&per_page=1"  [<Zendesk2::User      id=217761742,      url="https://dev.zendesk.com/api/v2/users/217761742.json",      ...      name="epitaphical osteofibrous",      ...>  ]
page.previous_page=><Zendesk2::Users  count=1780,  next_page_link="https://dev.zendesk.com/api/v2/users.json?page=5&per_page=1",  previous_page_link="https://dev.zendesk.com/api/v2/users.json?page=3&per_page=1"  [<Zendesk2::User      id=217761652,      url="https://dev.zendesk.com/api/v2/users/217761652.json",      ...      name="Guy Dude",      ...>  ]

Models

All models respond todestroy andsave if applicable.save performs a 'create' operation if there is no identity provided or an 'update' if there is an identity.

Zendesk2::Ticket.new.save# performs a createZendesk2::Ticket.new(id:1).save# performs an update

Attributes can be enumerated by theattributes method.

Testing

Running

$ bundle exec rspec

Testing Live

Run against a real Zendesk installation by settingMOCK_ZENDESK=false

$ MOCK_ZENDESK=false bundle exec rspec

Credentials are sourced from your~/.zendesk2 file

Raw responses and requests can be echoed to STDOUT by addingVERBOSE=true

$ VERBOSE=true bundle exec rspec

Releasing

$ gem install gem-release$ gem bump -trv (major|minor|patch)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

[8]ページ先頭

©2009-2025 Movatter.jp