pipedrive_jetrockets 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a817b4e6398c69751d82435a7aba6073abffdca1389ef6d54264d2dc74a868cc
4
- data.tar.gz: cfe9e292d837932a82aa8117fd7d606c93d15abedebf8181e4b2ff218bff5eed
3
+ metadata.gz: 2b798adb157e8825faac7b32baebd41f3613c3f0a57ad39e5932b3e516e82132
4
+ data.tar.gz: 2daac400b9ec927cc5aef91ee5d688af4794572d2b39a0e657f1019988df2712
5
5
  SHA512:
6
- metadata.gz: 3718f472c90b561f2ebc8468ecf5e6fdeeaa25f1d5f4196282c084284777d86f53fc9172822ff5160beccd90fd14f4c58272650372878b5842e477b7a4004d67
7
- data.tar.gz: 501cf9a6bf30c5defe418e8ab88155464705bbd503142437dcc3299911786ab5158fa15b8921488a69e15d416742b649fa5fcceeed1c8c4ab6a93c405f734e11
6
+ metadata.gz: 2da82fe6601fe0f23b74c5c6b0b09593b47faaca2d889e06ba7fac3ef0dc102ddcc9b49bfb7a881a4e80dd43d0aacee68fc0d3f1a3c513ea367cfeea6e965751
7
+ data.tar.gz: 4504dc911721b84622a397b2ce0eb7da3abef844b607d02f13d57a1a0fa050d67a93e76bd8e825a674689e7e5452249b636b7032f9a9556fa114615ca7f7cdd5
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ PipedriveJetrockets::Engine.routes.draw do
2
+ post '/events' => 'pipedrive_jetrockets/events#index'
3
+ end
@@ -0,0 +1,98 @@
1
+ require 'net/http'
2
+ require 'pipedrive_jetrockets/engine'
3
+
4
+ class PipedriveAPI
5
+ #Entities
6
+
7
+ class Entity
8
+ def initialize(hash)
9
+ hash.each {|k,v| instance_variable_set("@#{k}",v)}
10
+ end
11
+ end
12
+
13
+ class Organization < PipedriveAPI::Entity
14
+ attr_accessor :name, :owner_id, :address, :cc_email
15
+ end
16
+
17
+ class User < PipedriveAPI::Entity
18
+ attr_accessor :id, :name, :email
19
+ end
20
+
21
+ class Deal < PipedriveAPI::Entity
22
+ attr_accessor :id, :creator, :organization, :title, :value, :currency, :status
23
+ def initialize(hash)
24
+ super
25
+ @creator = PipedriveAPI::User.new(hash['creator_user_id']) if hash['creator_user_id']
26
+ @organization = PipedriveAPI::Organization.new(hash['org_id']) if hash['org_id']
27
+ end
28
+ end
29
+
30
+ #Services
31
+
32
+ class Service
33
+ def initialize(api_token)
34
+ @api_token = api_token
35
+ end
36
+
37
+ def build_uri(action)
38
+ uri = URI("#{PipedriveAPI::HOST}/#{action}?api_token=#{@api_token}")
39
+ end
40
+ end
41
+
42
+ class DealsService < PipedriveAPI::Service
43
+ def all
44
+ uri = build_uri('deals')
45
+ json_array = ::JSON.parse(Net::HTTP.get(uri))['data']
46
+ json_array.map{|raw|PipedriveAPI::Deal.new(raw)}
47
+ end
48
+
49
+ def create(title, value = nil, user_id = nil, person_id = nil, org_id = nil)
50
+ uri = build_uri('deals')
51
+ response = Net::HTTP.post_form(uri, title: title, value: value, user_id: user_id, person_id: person_id, org_id: org_id)
52
+
53
+ response.kind_of? Net::HTTPSuccess
54
+ end
55
+
56
+ def first
57
+ self.all.first
58
+ end
59
+ end
60
+
61
+ HOST = 'https://api.pipedrive.com/v1'
62
+
63
+ def initialize(api_token)
64
+ @api_token = api_token
65
+ end
66
+
67
+ #Actions
68
+
69
+ def deals
70
+ @deals_serice ||= PipedriveAPI::DealsService.new(@api_token)
71
+ end
72
+
73
+ def activities
74
+ uri = build_uri('activities')
75
+ ::JSON.parse(Net::HTTP.get(uri))['data']
76
+ end
77
+
78
+ def activity_types
79
+ uri = build_uri('activities')
80
+ ::JSON.parse(Net::HTTP.get(uri))['data']
81
+ end
82
+
83
+ #POST
84
+
85
+ def add_activity(subject, type, deal_id, due_date = nil, due_time = nil, duration = nil, org_id = nil)
86
+ uri = build_uri('activities')
87
+ response = Net::HTTP.post_form(uri, subject: subject, type: type, deal_id: deal_id, due_date: due_date, due_time: due_time, duration: duration, org_id: org_id)
88
+
89
+ response.kind_of? Net::HTTPSuccess
90
+ end
91
+
92
+ def add_deal(title, value = nil, user_id = nil, person_id = nil, org_id = nil)
93
+ uri = build_uri('deals')
94
+ response = Net::HTTP.post_form(uri, title: title, value: value, user_id: user_id, person_id: person_id, org_id: org_id)
95
+
96
+ response.kind_of? Net::HTTPSuccess
97
+ end
98
+ end
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.13
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agafonov Maksim
@@ -16,6 +16,8 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - config/routes.rb
20
+ - lib/pipedrive_jetrockets.rb
19
21
  - lib/pipedrive_jetrockets/engine.rb
20
22
  homepage: http://rubygems.org/gems/hola
21
23
  licenses: