pipedrive_jetrockets 0.0.38 → 0.0.39

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pipedrive_jetrockets.rb +126 -13
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ab9b0331d3fc8ea29b5b64749ded2cd2511b85cfd7bdb4913e7385c611d7ab9
4
- data.tar.gz: '08e9f87c78bd71c42af0e9d147c9e5b3a651c738ff60c8a8553fd854221af1af'
3
+ metadata.gz: 9b8919f1678a43eba744bd482ec84964bde61b391e703345db029a7966afc30e
4
+ data.tar.gz: 87ab78c5f34bfa916996fe642d0fa2005c7e56837b281066d7fac97ebf87f7bc
5
5
  SHA512:
6
- metadata.gz: 2a1cab1b4c9b4579c9cc8301ebb68b89b198416e569cd6ff0e343d463b83f27f95dfd35b9608390839d6483aec73d73780aade6f4d784f361be758d63f1c748e
7
- data.tar.gz: 505e552ee66b29a157d1d85925f706f0d9b4977f0114635aa267d1fb9620d6ac06a9186dbee39482bd92219f64c0ae0403f77b3d336b07f1dc73669e6e754fca
6
+ metadata.gz: 7fa02c2d39002763d3f1192f6934cbd2ced32ac2f69b3a3a98f76f5f6895b8defa5e0210fc024dd961c5054b9544676daa511b98898d35a265f5be9521a6148d
7
+ data.tar.gz: a1c6545e8334c622589be660ae63dd37c485da34cf5872f08f6fd8d16a071f2b990511f8b7d83d9444c4e1af7bf6ac5a9e98321f12a381584b5a2ece53c6f4d8
@@ -4,7 +4,19 @@ require 'pipedrive_jetrockets/engine'
4
4
  class Pipedrive
5
5
 
6
6
  def self.deals
7
- @@deals_service ||= Pipedrive::DealsService.new
7
+ @@deals_service ||= Pipedrive::Service.new('deal')
8
+ end
9
+
10
+ def self.notes
11
+ @@persons_service ||= Pipedrive::Service.new('note')
12
+ end
13
+
14
+ def self.persons
15
+ @@persons_service ||= Pipedrive::Service.new('person')
16
+ end
17
+
18
+ def self.stages
19
+ @@stages_service ||= Pipedrive::Service.new('stage')
8
20
  end
9
21
 
10
22
  #Entities
@@ -15,6 +27,10 @@ class Pipedrive
15
27
  end
16
28
  end
17
29
 
30
+ class Note < Pipedrive::Entity
31
+ attr_accessor :id, :deal_id, :person_id, :org_id, :content
32
+ end
33
+
18
34
  class Organisation < Pipedrive::Entity
19
35
  attr_accessor :id, :name, :owner_id, :address, :cc_email
20
36
  end
@@ -39,41 +55,138 @@ class Pipedrive
39
55
  @organisation = Pipedrive::Organisation.new(hash['org_id']) if hash['org_id']
40
56
  @person = Pipedrive::Person.new(hash['person_id']) if hash['person_id']
41
57
  end
58
+
59
+ def stage
60
+ Pipedrive.stages.find(self.stage_id)
61
+ end
62
+ end
63
+
64
+ class Stage < Pipedrive::Entity
65
+ attr_accessor :id, :name, :pipeline_name
66
+ def display_name
67
+ "#{pipeline_name}:#{name}"
68
+ end
42
69
  end
43
70
 
44
71
  #Services
45
72
 
46
73
  class Service
47
- def build_uri(action, id = nil)
48
- uri = URI("#{Pipedrive::HOST}/#{action}/#{id}?api_token=#{ENV['pipedrive_api_token']}")
74
+ def initialize(resource_name)
75
+ @resource_name = resource_name
76
+ end
77
+
78
+ def build_entity(raw)
79
+ "Pipedrive::#{@resource_name.titleize}".constantize.new(raw)
80
+ end
81
+
82
+ def build_uri(id = nil)
83
+ uri = URI("#{Pipedrive::HOST}/#{@resource_name.pluralize}/#{id}?api_token=#{ENV['pipedrive_api_token']}")
49
84
  end
50
- end
51
85
 
52
- class DealsService < Pipedrive::Service
53
86
  def all
54
- uri = build_uri('deals')
87
+ uri = build_uri
55
88
  json_array = ::JSON.parse(Net::HTTP.get(uri))['data']
56
- json_array.map{|raw|Pipedrive::Deal.new(raw)}
89
+ json_array.map{|raw|build_entity(raw)}
57
90
  end
58
91
 
59
- def create(title, value = nil, user_id = nil, person_id = nil, org_id = nil)
60
- uri = build_uri('deals')
61
- response = Net::HTTP.post_form(uri, title: title, value: value, user_id: user_id, person_id: person_id, org_id: org_id)
92
+ def create(params)
93
+ uri = build_uri
94
+ response = Net::HTTP.post_form(uri, params)
62
95
 
63
- response.kind_of? Net::HTTPSuccess
96
+ if response.kind_of? Net::HTTPSuccess
97
+ JSON.parse(response.body)['data']['id']
98
+ else
99
+ nil
100
+ end
64
101
  end
65
102
 
66
103
  def find(id)
67
- uri = build_uri('deals', id)
104
+ uri = build_uri(id)
68
105
  raw = ::JSON.parse(Net::HTTP.get(uri))['data']
69
- Pipedrive::Deal.new(raw)
106
+ build_entity(raw)
70
107
  end
71
108
 
72
109
  def first
73
110
  self.all.first
74
111
  end
112
+
75
113
  end
76
114
 
115
+ # class DealsService < Pipedrive::Service
116
+ # # def all
117
+ # # uri = build_uri('deals')
118
+ # # json_array = ::JSON.parse(Net::HTTP.get(uri))['data']
119
+ # # json_array.map{|raw|Pipedrive::Deal.new(raw)}
120
+ # # end
121
+ # def resource_name
122
+ # 'deal'
123
+ # end
124
+ #
125
+ # def create(params)
126
+ # uri = build_uri('deals')
127
+ # response = Net::HTTP.post_form(params)
128
+ #
129
+ # if responce['success']
130
+ # responce['data']['id']
131
+ # else
132
+ # nil
133
+ # end
134
+ # end
135
+ #
136
+ # def find(id)
137
+ # uri = build_uri('deals', id)
138
+ # raw = ::JSON.parse(Net::HTTP.get(uri))['data']
139
+ # Pipedrive::Deal.new(raw)
140
+ # end
141
+ #
142
+ # def first
143
+ # self.all.first
144
+ # end
145
+ # end
146
+ #
147
+ # class PersonsService < Pipedrive::Service
148
+ # # def all
149
+ # # uri = build_uri('persons')
150
+ # # json_array = ::JSON.parse(Net::HTTP.get(uri))['data']
151
+ # # json_array.map{|raw|Pipedrive::Person.new(raw)}
152
+ # # end
153
+ # def resource_name
154
+ # 'person'
155
+ # end
156
+ #
157
+ # def find(id)
158
+ # uri = build_uri('persons', id)
159
+ # raw = ::JSON.parse(Net::HTTP.get(uri))['data']
160
+ # Pipedrive::Person.new(raw)
161
+ # end
162
+ #
163
+ # def first
164
+ # self.all.first
165
+ # end
166
+ # end
167
+ #
168
+ # class StagesService < Pipedrive::Service
169
+ # # def all
170
+ # # uri = build_uri('stages')
171
+ # # json_array = ::JSON.parse(Net::HTTP.get(uri))['data']
172
+ # # json_array.map{|raw|Pipedrive::Stage.new(raw)}
173
+ # # end
174
+ #
175
+ # def resource_name
176
+ # 'stage'
177
+ # end
178
+ #
179
+ # def find(id)
180
+ # uri = build_uri('stages', id)
181
+ # raw = ::JSON.parse(Net::HTTP.get(uri))['data']
182
+ # Pipedrive::Stage.new(raw)
183
+ # end
184
+ #
185
+ # def first
186
+ # self.all.first
187
+ # end
188
+ # end
189
+
77
190
  HOST = 'https://api.pipedrive.com/v1'
78
191
 
79
192
  #Service Methods
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipedrive_jetrockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.38
4
+ version: 0.0.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agafonov Maksim