Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Zendesk API V2 client using Cistern

License

NotificationsYou must be signed in to change notification settings

lanej/zendesk2

Repository files navigation

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:

  • Audit Events
  • Brands
  • Categories
  • Forums
  • Groups
  • Memberships
  • Organization
  • Ticket Audits
  • Ticket Fields
  • Tickets
  • Ticket Forms
  • Topic Comments
  • Topics
  • User Identities
  • User Fields
  • Users
  • Views

Help Center resources:

  • Sections
  • Articles
  • Categories

All collection are accessed like so:

client.users.all=> <Zendesk2::Userscount=1779,next_page_link="https://dev.zendesk.com/api/v2/users.json?page=2",previous_page_link=nil[    <Zendesk2::Userid=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::Userid=234020811,  ...url="https://engineyarddev.zendesk.com/api/v2/users/234020811.json",  ...email="ohhai@example.org",  >
client.users.new(email:"ohhai@example.org")=> <Zendesk2::Userid=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::Userscount=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::Userid=217761652,url="https://dev.zendesk.com/api/v2/users/217761652.json",external_id=nil,name="Guy Dude",      ...    >]
page.next_page=> <Zendesk2::Userscount=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::Userid=217761742,url="https://dev.zendesk.com/api/v2/users/217761742.json",      ...name="epitaphical osteofibrous",      ...    >]
page.previous_page=> <Zendesk2::Userscount=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::Userid=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

About

Zendesk API V2 client using Cistern

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp