marketo_api 0.0.7.pre.alpha → 0.1.1.pre.alpha

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
- SHA1:
3
- metadata.gz: 0e4a69bf5f1286d61ac226604d905bf1b3dee26b
4
- data.tar.gz: 97b0aef343a1d57180b22583b7e6befaf8d85035
2
+ SHA256:
3
+ metadata.gz: b66ff88fcb787f69745f1119bfa69298cca89aec9e3446a12cc5688e3b4cf2f5
4
+ data.tar.gz: 7bbbed4b3ba4c557dd54f3ad212f8029fcbbd953d5537ab7e16c39c58ea46a71
5
5
  SHA512:
6
- metadata.gz: 62bc0d5a6185484f7e26de757177ba17776a418df1c3056714532d10198002a4a2580ea308be7ce4fedaf99366ee7bf97ba30e597bbc28087dc06f7e6ba9ae07
7
- data.tar.gz: 1fdfb44bca20e8189c0c6023774d7f2a72a0f993765a8127940a0607305eeb85be5cdbc384e87612259c5eef41bb7774a2faa06548922ece95e1a48f0a6af60c
6
+ metadata.gz: b9db3ec1fe011c9e759ed589e2ca17baac5bd5f35ab56f096e2c9ab8c232b225b80d55cdf97755372607cc9905008a45c0d38c1b3991cd76925d7df1aa267c92
7
+ data.tar.gz: 39b6e083bf6123d7021e7186df8eb651d07516022eb3e81c4e4f5d54a4dac94d6181123473ab63dec28aead571dd7c74d8b049e702edd61e01d79d69579aae10
@@ -0,0 +1,15 @@
1
+ ## What's in here
2
+
3
+
4
+
5
+ ### Related PRs
6
+
7
+ - n/a
8
+
9
+ ### Related Stories
10
+
11
+ - n/a
12
+
13
+ ### Notes
14
+
15
+ none
@@ -1,8 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
4
- - 2.1.0
5
- - 2.2.0
6
3
  - 2.3.0
7
4
  before_script:
8
5
  - bin/setup
@@ -0,0 +1,5 @@
1
+
2
+ 0.1.0 / 2018-02-23
3
+ ==================
4
+
5
+ * Implement Workspaces API
@@ -25,6 +25,7 @@ module MarketoApi
25
25
  autoload :Stats, 'marketo_api/api/stats'
26
26
  autoload :Activities, 'marketo_api/api/activities'
27
27
  autoload :Campaigns, 'marketo_api/api/campaigns'
28
+ autoload :Workspaces, 'marketo_api/api/workspaces'
28
29
  end
29
30
 
30
31
  Error = Class.new(StandardError)
@@ -11,5 +11,6 @@ module MarketoApi
11
11
  include MarketoApi::API::Leads
12
12
  include MarketoApi::API::Sales
13
13
  include MarketoApi::API::Campaigns
14
+ include MarketoApi::API::Workspaces
14
15
  end
15
16
  end
@@ -28,11 +28,6 @@ module MarketoApi
28
28
  api_get("activities/pagingtoken.json?sinceDatetime=#{mod_time}")
29
29
  end
30
30
 
31
- def add_next_page_token(path, token)
32
- path = "#{path}&nextPageToken=#{token}" if token
33
- path
34
- end
35
-
36
31
  def add_activity_type_ids(type_ids)
37
32
  ids = format_filter_values(type_ids)
38
33
  if ids
@@ -46,6 +46,38 @@ module MarketoApi
46
46
  end
47
47
  end
48
48
 
49
+ # Internal: Converts a hash into a string that can be consumed by
50
+ # the Marketo API as a query string
51
+ #
52
+ # Examples
53
+ #
54
+ # to_query({ source: 'Sales Engage', workspaceName: 'Global' })
55
+ # # => 'source=Sales%20Engage&workspaceName=Global'
56
+ def to_query(options = {})
57
+ options.to_query.gsub('+', '%20')
58
+ end
59
+
60
+ # Internal: Append a nextPageToken to a url if token is present
61
+ #
62
+ # Examples
63
+ #
64
+ # add_next_page_token('activities.json?')
65
+ # # => '/rest/v1/leads'
66
+ def add_next_page_token(path, token)
67
+ path += "&nextPageToken=#{token}" if token
68
+ path
69
+ end
70
+
71
+ # Internal: Returns hash for next page token param
72
+ #
73
+ # Examples
74
+ #
75
+ # add_next_page_token('123')
76
+ # # => { nextPageToken: '123' }
77
+ def paging_token_param(token)
78
+ token.present? ? { nextPageToken: token } : {}
79
+ end
80
+
49
81
  def extract_case_insensitive_string_or_symbol_key_from_hash!(hash, key)
50
82
  value = hash.delete(key.to_sym)
51
83
  value ||= hash.delete(key.to_s)
@@ -34,7 +34,7 @@ module MarketoApi
34
34
  #
35
35
  # Example
36
36
  # # Find the specific campaign
37
- # client.campaigns_by_workspace(true)
37
+ # client.campaigns_by_workspace('Default')
38
38
  # # => {
39
39
  # "requestId": "cab#15f4b36d1ca"
40
40
  # "success": "true"
@@ -60,10 +60,65 @@ module MarketoApi
60
60
  # "success": true
61
61
  # }
62
62
  #
63
- def campaigns_by_workspace(is_triggerable, workspace_name = 'Default')
64
- triggerable_param = "isTriggerable=#{is_triggerable ? 1 : 0}"
65
- workspace_param = "workspaceName=#{workspace_name}"
66
- api_get("campaigns.json?#{triggerable_param}&#{workspace_param}")
63
+ def campaigns_by_workspace(workspace_name = 'Default', options = {})
64
+ options[:workspaceName] = workspace_name
65
+ campaigns(options)
66
+ end
67
+
68
+ def campaigns_next_page(next_page_token, options = {})
69
+ campaigns(options.merge(paging_token_param(next_page_token)))
70
+ end
71
+
72
+ def campaigns(options = {})
73
+ options_query = to_query(options)
74
+ api_get("campaigns.json?#{options_query}")
75
+ end
76
+
77
+ # Public: Passes a set of leads to a trigger campaign to run through the campaign's flow.
78
+ # The designated campaign must have a Campaign is Requested: Web Service API trigger, and
79
+ # must be active. My tokens local to the campaign's parent program can be overridden for
80
+ # the run to customize content.
81
+ #
82
+ # Required Permissions: Execute Campaign
83
+ #
84
+ #
85
+ # Example
86
+ # # Add lead to trigger campaign
87
+ # client.trigger_campaign!(3711, {})
88
+ # # => {
89
+ # "errors": [
90
+ # {
91
+ # "code": 0,
92
+ # "message": "string"
93
+ # }
94
+ # ],
95
+ # "moreResult": false,
96
+ # "nextPageToken": "string",
97
+ # "requestId": "string",
98
+ # "result": [
99
+ # {
100
+ # "active": false,
101
+ # "createdAt": "string",
102
+ # "description": "string",
103
+ # "id": 0,
104
+ # "name": "string",
105
+ # "programId": 0,
106
+ # "programName": "string",
107
+ # "type": "batch",
108
+ # "updatedAt": "string",
109
+ # "workspaceName": "string"
110
+ # }
111
+ # ],
112
+ # "success": false,
113
+ # "warnings": [
114
+ # {
115
+ # "code": 0,
116
+ # "message": "string"
117
+ # }
118
+ # ]
119
+ # }
120
+ def trigger_campaign!(campaign_id, attrs)
121
+ api_post("campaigns/#{campaign_id}/trigger.json", attrs)
67
122
  end
68
123
  end
69
124
  end
@@ -0,0 +1,25 @@
1
+ module MarketoApi
2
+ module API
3
+ module Workspaces
4
+ include Base
5
+
6
+ # Public: Returns an array of workspaces for the current user.
7
+ # Example
8
+ # client.user_workspaces
9
+ # => [{
10
+ # "id": 102,
11
+ # "name": "A cool Marketo workspace",
12
+ # "description": "This workspace is amazing!",
13
+ # "globalViz": 0,
14
+ # "status": "active",
15
+ # "currencyInfo": nil,
16
+ # "createdAt": "20180112T18:07:09.0t+0000",
17
+ # "updatedAt": "20180112T18:07:09.0t+0000"
18
+ # }]
19
+
20
+ def user_workspaces
21
+ get("userservice/lm/v1/workspaces/")
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module MarketoApi
2
- VERSION = '0.0.7-alpha'.freeze
2
+ VERSION = '0.1.1-alpha'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marketo_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7.pre.alpha
4
+ version: 0.1.1.pre.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ami Bhatt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-12-20 00:00:00.000000000 Z
12
+ date: 2018-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday_middleware
@@ -201,6 +201,7 @@ extensions: []
201
201
  extra_rdoc_files: []
202
202
  files:
203
203
  - ".codeclimate.yml"
204
+ - ".github/PULL_REQUEST_TEMPLATE.md"
204
205
  - ".gitignore"
205
206
  - ".rubocop.yml"
206
207
  - ".travis.yml"
@@ -208,6 +209,7 @@ files:
208
209
  - Gemfile
209
210
  - Gemfile.lock
210
211
  - Guardfile
212
+ - History.md
211
213
  - LICENSE
212
214
  - README.md
213
215
  - Rakefile
@@ -226,6 +228,7 @@ files:
226
228
  - lib/marketo_api/api/leads.rb
227
229
  - lib/marketo_api/api/sales.rb
228
230
  - lib/marketo_api/api/stats.rb
231
+ - lib/marketo_api/api/workspaces.rb
229
232
  - lib/marketo_api/client.rb
230
233
  - lib/marketo_api/concerns/authentication.rb
231
234
  - lib/marketo_api/concerns/base.rb
@@ -262,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
262
265
  version: 1.3.1
263
266
  requirements: []
264
267
  rubyforge_project:
265
- rubygems_version: 2.5.1
268
+ rubygems_version: 2.7.3
266
269
  signing_key:
267
270
  specification_version: 4
268
271
  summary: Marketo REST API ruby gem