infunnel_cli 0.0.14 → 0.0.15

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
  SHA1:
3
- metadata.gz: e25c31c1bb2a974a7ec6b4a1966763ee085e2da3
4
- data.tar.gz: 27dce2e4123321a2820a9a88dd34132a3c86ed96
3
+ metadata.gz: c807397df3b86871aec2b9bf526d246ef2b8cc20
4
+ data.tar.gz: bd82d249bf971f5b8d17cd30cef9e1a92970ddd0
5
5
  SHA512:
6
- metadata.gz: 57dcb8cf80603ae9da8bd3eab3ec6d345971d3c48560917e1cb5980970e198eec6424616effbc7664a3671452cc180cb0ad8ef59d945fa6871aef5268a635e6f
7
- data.tar.gz: 1863d752132c3e6829443a4fdedab6e2c8dfbc92a47e5ff40cb449726ebf48906b161d775821b87c4969a8b247a1bb8944dbf18d8f62edc758d8d7cdeb13c524
6
+ metadata.gz: ec6afcb0923ee7d6d2e71f13fc35be6b98cc785728a27efc06850bb8bf01efaf134c8f1054d0092c82ec5e15dda668cdaa4e6a45d1617ae2f73d3d3b9c79737a
7
+ data.tar.gz: fc22665f21f5ba84afefedf220209397ee1eee59a7f0826b350946d35e0bb35845b745a3521bf85a835b3e676bd498923841d2cb75945c5e908cf695aebe2700
data/README.md CHANGED
@@ -1,17 +1,25 @@
1
- gem build infunnel_cli.gemspec
1
+ #infunnel_cli
2
+
3
+ ###How do deploy to rubygems.org
2
4
 
3
5
  And dont forget to commit to git in case you get "are not files" error when running gem build due to this row:
4
6
 
5
7
  spec.files = `git ls-files -z`.split("\x0")
6
8
 
7
- https://rubygems.org/gems/ruby-keychain
8
- https://github.com/fcheung/keychain
9
- gem 'ruby-keychain', '~> 0.3.2'
10
- gem 'ruby-keychain', :require => 'keychain'
9
+ gem build infunnel_cli.gemspec
11
10
 
11
+ gem push infunnel_cli-x.x.x.gem
12
12
 
13
- ###How do deploy to rubygems.org
14
13
 
15
- gem build infunnel_cli.gemspec
14
+ ###TODO
16
15
 
17
- gem push infunnel_cli-x.x.x.gem
16
+ Add warnings if no eloqua credentials are stored in keychain.
17
+
18
+
19
+
20
+
21
+ ### Misc
22
+
23
+ docs for thor: http://whatisthor.com/
24
+
25
+ more docs for thor: http://www.rubydoc.info/github/wycats/thor/Thor/Shell/Color
data/infunnel_cli.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["lundevallan"]
10
10
  spec.email = ["linus.lundevall@infunnel.se"]
11
11
  spec.summary = "A cli for working with marketing automation."
12
- spec.description = "A cli for working with marketing automation."
12
+ spec.description = "A cli for working with marketing automation. Connects to the eloqua-api."
13
13
  spec.homepage = "http://infunnel.se"
14
14
  spec.license = "MIT"
15
15
 
@@ -25,5 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency 'ruby-keychain', '~> 0.3.2'
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 1.5"
28
- spec.add_development_dependency "rake", '>= 11.2.2'
28
+ spec.add_development_dependency "rake", '~> 11.2', '>= 11.2.2'
29
29
  end
@@ -13,6 +13,10 @@ module EloquaApiService
13
13
  parsed_response = JSON.parse(response.body, symbolize_names: true)
14
14
  end
15
15
 
16
+ def search(term: '', options: {})
17
+ parse( self.class.get("/API/REST/1.0/assets/forms?search=*#{term}*&depth=complete", @options) )
18
+ end
19
+
16
20
  def data(id:, options: {})
17
21
  start_at = options[:start_at] || 0
18
22
 
@@ -1,7 +1,6 @@
1
1
  require 'eloqua_api_service/credential'
2
2
  require 'httparty'
3
3
 
4
-
5
4
  module EloquaApiService
6
5
  class Service
7
6
 
@@ -19,5 +18,9 @@ module EloquaApiService
19
18
  body: {}
20
19
  }
21
20
  end
21
+
22
+ def parse(response)
23
+ JSON.parse(response.body, symbolize_names: true)
24
+ end
22
25
  end
23
26
  end
@@ -1,3 +1,6 @@
1
+ require 'nokogiri'
2
+ require 'cgi'
3
+ require 'uri'
1
4
  require 'eloqua_api_service/login'
2
5
  require 'eloqua_api_service/credential'
3
6
  require 'eloqua_api_service/email'
@@ -80,7 +83,6 @@ module InfunnelCli
80
83
  def on_white(text)
81
84
  "\e[47m#{text}\e[0m"
82
85
  end
83
-
84
86
  end
85
87
  end
86
88
  end
@@ -1,10 +1,5 @@
1
1
  require 'infunnel_cli/cli/base'
2
- require 'nokogiri'
3
- require 'cgi'
4
- require 'uri'
5
2
 
6
- # docs for thor: http://whatisthor.com/
7
- # more docs for thor: http://www.rubydoc.info/github/wycats/thor/Thor/Shell/Color
8
3
  module InfunnelCli
9
4
  module CLI
10
5
  class Email < Base
@@ -62,12 +57,12 @@ module InfunnelCli
62
57
 
63
58
  desc "find id", "Find email by id"
64
59
  def preview(email_id, contact_id)
65
- puts body = EloquaApiService::Email.new.preview(contact_id: contact_id, id: email_id)
60
+ puts body = EloquaApiService::Email.new(account: options[:account]).preview(contact_id: contact_id, id: email_id)
66
61
  end
67
62
 
68
63
  desc "find id", "Find email by id"
69
64
  def campaign(campaign_id)
70
- elements = EloquaApiService::Email.new.campaign(campaign_id: campaign_id)
65
+ elements = EloquaApiService::Email.new(account: options[:account]).campaign(campaign_id: campaign_id)
71
66
  puts elements.select { |e| e[:type] == 'CampaignEmail' }.map{ |e| find(e[:id]) }
72
67
  end
73
68
 
@@ -1,41 +1,57 @@
1
1
  require 'infunnel_cli/cli/base'
2
- require 'nokogiri'
3
- require 'cgi'
4
- require 'uri'
5
-
6
2
 
7
3
  module InfunnelCli
8
4
  module CLI
9
5
  class Form < Base
10
6
 
11
- desc "find id", "Find email by id"
7
+ desc "find :id", "Sow form with id"
12
8
  option :links, aliases: :l
13
9
  option :full, aliases: :f
14
10
  option :account, aliases: :a
15
11
  def find( id )
16
- puts EloquaApiService::Form.new.find(id: 50)
12
+ puts EloquaApiService::Form.new(account: options[:account]).find(id: 50)
17
13
  end
18
14
 
19
-
20
- desc "find id", "Find email by id"
15
+ desc "all", "All forms in current eloqua account"
21
16
  option :links, aliases: :l
22
17
  option :full, aliases: :f
23
18
  option :account, aliases: :a
24
19
  def all
25
- puts EloquaApiService::Form.new.all[:elements] #.map{ |f| f[:id]}
20
+ puts EloquaApiService::Form.new(account: options[:account]).all[:elements]
26
21
  end
27
22
 
23
+ desc "search :term", "Find form by search on it's name"
24
+ option :account, aliases: :a
25
+ option :verbose, aliases: :v
26
+ def search(term)
27
+ EloquaApiService::Form.new(account: options[:account]).search(term: term)[:elements].each_with_index do |form, index|
28
+ string = "Id: #{form[:id]}, "
29
+ string += "name: #{form[:name]}, "
30
+ string += "fields: #{form[:elements].count}, "
31
+ string += "created_at: #{parse_date(form[:createdAt])}, "
32
+ string += "updated_at: #{parse_date(form[:updatedAt])} "
33
+ if options[:verbose]
34
+ string += "\n\nFields: \n"
35
+ string += form[:elements].map{ |e| " " +
36
+ e.reject{ |k| [:style, :validations].include?(k)
37
+ }.map{ |k, v| "#{k}: #{v}" }.join(', ')
38
+ }.join("\n")
39
+ end
40
+ puts (index.odd? ? black(on_white(string)) : white(on_black(string)))
41
+ puts ''
42
+ end
43
+ end
28
44
 
29
- desc "find id", "Find email by id"
45
+ desc "data :id", "Get form submissions by form id"
30
46
  option :live, aliases: :l
31
47
  option :full, aliases: :f
32
48
  option :account, aliases: :a
33
49
  def data(form_id)
34
50
 
35
51
  start_at = options[:full] ? 0 : Time.now - (76*3600)
36
- fetch_options = { start_at: start_at }
52
+ fetch_options = { start_at: start_at, account: options[:account] }
37
53
 
38
- form = EloquaApiService::Form.new.find(id: form_id)
54
+ form = EloquaApiService::Form.new(account: options[:account]).find(id: form_id)
39
55
  elements = form[:elements]
40
56
 
41
57
  puts black on_white "Form name: " + form[:name]
@@ -67,7 +83,7 @@ module InfunnelCli
67
83
 
68
84
  def data_fetch(form_id: nil, options: {})
69
85
  start_at = options[:start_at] || Time.now - (76*3600)
70
- EloquaApiService::Form.new.data(id: form_id, options: {start_at: start_at})[:elements]
86
+ EloquaApiService::Form.new(account: options[:account]).data(id: form_id, options: {start_at: start_at})[:elements]
71
87
  end
72
88
 
73
89
  def data_print(submissions: [], elements: {})
@@ -83,6 +99,10 @@ module InfunnelCli
83
99
  end
84
100
  return submissions
85
101
  end
102
+
103
+ def parse_date(unix_date)
104
+ DateTime.strptime(unix_date, '%s').strftime('%Y-%m-%d %H:%M')
105
+ end
86
106
  end
87
107
  end
88
108
  end
@@ -1,3 +1,3 @@
1
1
  module InfunnelCli
2
- VERSION = "0.0.14"
2
+ VERSION = "0.0.15"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infunnel_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - lundevallan
@@ -98,6 +98,9 @@ dependencies:
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '11.2'
101
104
  - - ">="
102
105
  - !ruby/object:Gem::Version
103
106
  version: 11.2.2
@@ -105,10 +108,13 @@ dependencies:
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
107
110
  requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '11.2'
108
114
  - - ">="
109
115
  - !ruby/object:Gem::Version
110
116
  version: 11.2.2
111
- description: A cli for working with marketing automation.
117
+ description: A cli for working with marketing automation. Connects to the eloqua-api.
112
118
  email:
113
119
  - linus.lundevall@infunnel.se
114
120
  executables: