taskmapper-zendesk 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.6.0
@@ -46,7 +46,7 @@ module TaskMapper::Provider
46
46
  end
47
47
 
48
48
  def ticket!(*options)
49
- Ticket.new ZendeskAPI::Ticket.create(options.first), self.name
49
+ Ticket.create options.first
50
50
  end
51
51
 
52
52
  end
@@ -53,6 +53,10 @@ module TaskMapper::Provider
53
53
  search_by_attribute(self.search(project_id), attributes)
54
54
  end
55
55
 
56
+ def create(options)
57
+ super translate options, {:title => :description}
58
+ end
59
+
56
60
  private
57
61
  def requestor(ticket)
58
62
  USER_API.find(ticket.requester_id).email
@@ -65,6 +69,10 @@ module TaskMapper::Provider
65
69
  def zendesk_ticket(ticket_id)
66
70
  API.find ticket_id
67
71
  end
72
+
73
+ def translate(hash, mapping)
74
+ Hash[hash.map { |k, v| [mapping[k] ||= k, v]}]
75
+ end
68
76
  end
69
77
  end
70
78
  end
@@ -30,7 +30,6 @@ module ZendeskAPI
30
30
  end
31
31
 
32
32
  class Search < Base
33
-
34
33
  def self.collection_path(prefix_options = {}, query_options = nil)
35
34
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?
36
35
  "#{prefix(prefix_options)}search.#{format.extension}#{query_string(query_options)}"
@@ -40,7 +39,6 @@ module ZendeskAPI
40
39
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?
41
40
  "#{prefix(prefix_options)}search.#{format.extension}#{query_string(query_options)}"
42
41
  end
43
-
44
42
  end
45
43
 
46
44
  class Ticket < Base
@@ -7,6 +7,7 @@ describe TaskMapper::Provider::Zendesk::Ticket do
7
7
  let(:ticket_class) { TaskMapper::Provider::Zendesk::Ticket }
8
8
  let(:project) { tm.project(project_id) }
9
9
  let(:headers) { {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'} }
10
+ let(:post_headers) { {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Content-Type' => 'application/json'} }
10
11
 
11
12
  describe "Retrieving tickets" do
12
13
  before(:each) do
@@ -17,7 +18,7 @@ describe TaskMapper::Provider::Zendesk::Ticket do
17
18
  mock.get '/api/v1/users/26220353.json', headers, fixture_for('users/55030073'), 200
18
19
  end
19
20
  end
20
-
21
+
21
22
  context "when calling #tickets" do
22
23
  subject { project.tickets }
23
24
  it { should be_an_instance_of Array }
@@ -37,17 +38,31 @@ describe TaskMapper::Provider::Zendesk::Ticket do
37
38
  end
38
39
 
39
40
  describe "Retrieving a single ticket" do
40
- context "when calling #ticket to a project instance" do
41
- subject { project.ticket 1 }
42
- it { should be_an_instance_of ticket_class }
43
- it { subject.title.should == "Testing" }
44
- end
45
-
46
- context "when calling #ticket with a hash attribute" do
47
- subject { project.ticket :id => 1 }
48
- it { should be_an_instance_of ticket_class }
49
- it { subject.title.should == "Testing" }
50
- end
41
+ context "when calling #ticket to a project instance" do
42
+ subject { project.ticket 1 }
43
+ it { should be_an_instance_of ticket_class }
44
+ it { subject.title.should == "Testing" }
45
+ end
46
+
47
+ context "when calling #ticket with a hash attribute" do
48
+ subject { project.ticket :id => 1 }
49
+ it { should be_an_instance_of ticket_class }
50
+ it { subject.title.should == "Testing" }
51
+ end
52
+ end
53
+ end
54
+
55
+ describe "Create and update" do
56
+ before(:each) do
57
+ ActiveResource::HttpMock.respond_to do |mock|
58
+ mock.post '/api/v1/tickets.json', post_headers, fixture_for('ticket'), 201
59
+ end
60
+ end
61
+
62
+ context "when #calling #ticket! to a project instance" do
63
+ subject { project.ticket! :title => 'Testing' }
64
+ it { should be_an_instance_of ticket_class }
65
+ it { subject.title.should == 'Testing' }
51
66
  end
52
67
  end
53
68
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "taskmapper-zendesk"
8
- s.version = "0.5.1"
8
+ s.version = "0.6.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rafael George"]
12
- s.date = "2012-05-22"
12
+ s.date = "2012-05-24"
13
13
  s.description = "Allows taskmapper to interact with Your System."
14
14
  s.email = "rafael@hybridgroup.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskmapper-zendesk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-22 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: taskmapper
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
164
  version: '0'
165
165
  segments:
166
166
  - 0
167
- hash: -692886253
167
+ hash: -1035016497
168
168
  required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  none: false
170
170
  requirements: