zendesk_help_center_api 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +91 -0
- data/lib/zendesk_api/help_center.rb +155 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5b3bc0dbe25b5d814ddf87f31c33a9d054695035
|
4
|
+
data.tar.gz: 0d2fefe1c7f41ed2cc04ac198bda9b89d207de31
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9a6fb847cab6527af5b4b40f2f6facd627ff4b80679db38b5050cfee2fa8844d4030c5aa8bd8f95e4bb3fbad18401f2829f1200e2a5a00564f4b291dd233e544
|
7
|
+
data.tar.gz: 95b3beb3c5e5b203bff4979b3163443da44f0ed866540f45b1823d3d1052b5d37d2ab42f409be438f36ce911a6ee01079145cda2e895679e648c24134a681973
|
data/README.md
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# Zendesk HelpCenter API Client
|
2
|
+
|
3
|
+
This gem added support for `Zendesk Help Center` methods under [ZendeskAPI::Client](https://github.com/zendesk/zendesk_api_client_rb) gem.
|
4
|
+
|
5
|
+
To experiment with that code, run `bin/console` for an interactive prompt.
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
gem 'zendesk_help_center_api'
|
14
|
+
```
|
15
|
+
|
16
|
+
And then execute:
|
17
|
+
|
18
|
+
```
|
19
|
+
$ bundle
|
20
|
+
```
|
21
|
+
|
22
|
+
Or install it yourself as:
|
23
|
+
|
24
|
+
```
|
25
|
+
$ gem install zendesk_help_center_api
|
26
|
+
```
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
require 'zendesk_api/help_center'
|
32
|
+
```
|
33
|
+
|
34
|
+
### Help Center
|
35
|
+
|
36
|
+
#### Categories
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
categories = client.hc_categories
|
40
|
+
category = categories.build(name: 'Test Category')
|
41
|
+
category.save
|
42
|
+
category.update(description: 'This is a test')
|
43
|
+
category.destroy
|
44
|
+
```
|
45
|
+
|
46
|
+
#### Sections
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
sections = category.sections
|
50
|
+
section = sections.first
|
51
|
+
category.update(name: 'This is a test')
|
52
|
+
```
|
53
|
+
|
54
|
+
#### Articles
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
articles = section.articles
|
58
|
+
articles.build(title: 'Test Article')
|
59
|
+
category.update(description: 'This is a test')
|
60
|
+
article.destroy
|
61
|
+
```
|
62
|
+
|
63
|
+
### Help Center Translations
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
categories_tr = category.translations
|
67
|
+
category_tr = categories_tr.build(locale: 'uk', name: 'Тестова Стаття')
|
68
|
+
category_tr.save
|
69
|
+
|
70
|
+
sections_tr = sections.translations
|
71
|
+
section_tr = article_tr.build(locale: 'uk', name: 'Це тест')
|
72
|
+
section_tr.save
|
73
|
+
|
74
|
+
articles_tr = article.translations
|
75
|
+
article_tr = article_translations.build(locale: 'uk', title: 'Тестова Стаття')
|
76
|
+
article_tr.save
|
77
|
+
```
|
78
|
+
|
79
|
+
## Development
|
80
|
+
|
81
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
82
|
+
|
83
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
84
|
+
|
85
|
+
## Contributing
|
86
|
+
|
87
|
+
1. Fork it ( https://github.com/mamantoha/zendesk_help_center_api_client_rb/fork )
|
88
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
89
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
90
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
91
|
+
5. Create a new Pull Request
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'zendesk_api'
|
2
|
+
# require 'byebug'
|
3
|
+
|
4
|
+
module ZendeskAPI
|
5
|
+
module HelpCenter
|
6
|
+
include DataNamespace
|
7
|
+
|
8
|
+
class Article < Resource; end
|
9
|
+
class Section < Resource; end
|
10
|
+
|
11
|
+
class Article < Resource
|
12
|
+
class << self
|
13
|
+
def singular_resource_name
|
14
|
+
'article'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Section < Resource
|
20
|
+
class << self
|
21
|
+
def singular_resource_name
|
22
|
+
'section'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class HcCategory < Resource
|
28
|
+
class << self
|
29
|
+
def singular_resource_name
|
30
|
+
'category'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class HcCategory < Resource
|
36
|
+
class Translation < DataResource
|
37
|
+
extend Read
|
38
|
+
include Create
|
39
|
+
include Update
|
40
|
+
include Destroy
|
41
|
+
|
42
|
+
def initialize(client, attributes = {})
|
43
|
+
attributes["category_id"] ||= attributes.delete('source_id')
|
44
|
+
super
|
45
|
+
end
|
46
|
+
|
47
|
+
# Categorues and sections have the mandatory keys 'name' and 'description'. But in translations used 'title' and 'body' keys.
|
48
|
+
# Here we replace this keys:
|
49
|
+
#
|
50
|
+
# More info:
|
51
|
+
# https://support.zendesk.com/hc/communities/public/posts/204262967-Error-when-creating-new-translation-for-the-section-via-Rest-API
|
52
|
+
#
|
53
|
+
def attributes_for_save
|
54
|
+
attributes[:title] ||= attributes.delete(:name)
|
55
|
+
attributes[:body] ||= attributes.delete(:description)
|
56
|
+
|
57
|
+
attributes
|
58
|
+
end
|
59
|
+
|
60
|
+
def destroy!
|
61
|
+
super do |req|
|
62
|
+
req.path = @client.config.url + "/help_center/translations/" + id.to_s
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
has HcCategory
|
67
|
+
end
|
68
|
+
|
69
|
+
has_many Translation
|
70
|
+
end
|
71
|
+
|
72
|
+
class Section < Resource
|
73
|
+
class Translation < DataResource
|
74
|
+
extend Read
|
75
|
+
include Create
|
76
|
+
include Update
|
77
|
+
include Destroy
|
78
|
+
|
79
|
+
def initialize(client, attributes = {})
|
80
|
+
attributes["section_id"] ||= attributes.delete('source_id')
|
81
|
+
super
|
82
|
+
end
|
83
|
+
|
84
|
+
def attributes_for_save
|
85
|
+
attributes[:title] ||= attributes.delete(:name)
|
86
|
+
attributes[:body] ||= attributes.delete(:description)
|
87
|
+
|
88
|
+
attributes
|
89
|
+
end
|
90
|
+
|
91
|
+
def destroy!
|
92
|
+
super do |req|
|
93
|
+
req.path = @client.config.url + "/help_center/translations/" + id.to_s
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
has Section
|
98
|
+
end
|
99
|
+
|
100
|
+
has_many Translation
|
101
|
+
end
|
102
|
+
|
103
|
+
class Article < Resource
|
104
|
+
class Translation < DataResource
|
105
|
+
extend Read
|
106
|
+
include Create
|
107
|
+
include Update
|
108
|
+
include Destroy
|
109
|
+
|
110
|
+
def initialize(client, attributes = {})
|
111
|
+
attributes["article_id"] ||= attributes.delete('source_id')
|
112
|
+
super
|
113
|
+
end
|
114
|
+
|
115
|
+
def destroy!
|
116
|
+
super do |req|
|
117
|
+
req.path = @client.config.url + "/help_center/translations/" + id.to_s
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
has Article
|
122
|
+
end
|
123
|
+
|
124
|
+
has_many Translation
|
125
|
+
end
|
126
|
+
|
127
|
+
class HcCategory < Resource
|
128
|
+
namespace "help_center"
|
129
|
+
|
130
|
+
has_many Section
|
131
|
+
has_many Article
|
132
|
+
end
|
133
|
+
|
134
|
+
class Section < Resource
|
135
|
+
namespace "help_center"
|
136
|
+
|
137
|
+
has HcCategory
|
138
|
+
has_many Article
|
139
|
+
|
140
|
+
def save!(*)
|
141
|
+
category = @association.options.parent
|
142
|
+
super do |req|
|
143
|
+
req.path = "help_center/categories/#{category.id}/sections"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
class Article < Resource
|
149
|
+
namespace "help_center"
|
150
|
+
|
151
|
+
has HcCategory
|
152
|
+
has Section
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zendesk_help_center_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Anton Maminov
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: zendesk_api
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.9'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Ruby wrapper for the REST API at http://www.zendesk.com. Documentation
|
70
|
+
at https://developer.zendesk.com/rest_api/docs/help_center/introduction.
|
71
|
+
email:
|
72
|
+
- anton.linux@gmail.com
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- README.md
|
78
|
+
- lib/zendesk_api/help_center.rb
|
79
|
+
homepage: https://github.com/mamantoha/zendesk_help_center_api_client_rb
|
80
|
+
licenses:
|
81
|
+
- Apache License Version 2.0
|
82
|
+
metadata: {}
|
83
|
+
post_install_message:
|
84
|
+
rdoc_options: []
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 2.0.0
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.2.2
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: Zendesk Help Center REST API Client
|
103
|
+
test_files: []
|