user_engage 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +12 -0
- data/.travis.yml +6 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +66 -1
- data/NetrwTreeListing 3 b/data/NetrwTreeListing → 3 +0 -0
- data/README.md +5 -1
- data/Rakefile +3 -3
- data/TODO.md +129 -0
- data/bin/console +4 -4
- data/bin/setup +2 -1
- data/lib/user_engage.rb +7 -2
- data/lib/user_engage/attribute.rb +14 -0
- data/lib/user_engage/base_model.rb +11 -0
- data/lib/user_engage/client.rb +37 -3
- data/lib/user_engage/errors.rb +5 -0
- data/lib/user_engage/list.rb +10 -0
- data/lib/user_engage/operation/destroy.rb +30 -0
- data/lib/user_engage/operation/find.rb +43 -0
- data/lib/user_engage/tag.rb +10 -0
- data/lib/user_engage/user.rb +69 -0
- data/lib/user_engage/version.rb +1 -1
- data/user_engage.gemspec +23 -14
- metadata +97 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 18d99b1ccd39a659cb6733181ebf2ae75c6739e8
|
|
4
|
+
data.tar.gz: 04021ad99abf006227beebd175be14235e0861f7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f140559b269a4d0f20ee217eddfc9ea3551026f55f9f9634b6f20f1233c51ba276912cbc98b06cebc082ba7f8cbda03f7de22909eb3d2d330c2a6ae3e14fcd5
|
|
7
|
+
data.tar.gz: 369dcedfd288b570d2836faadac8caf1f1e3ca2d8033440095d5bf40609eac77eeee2ff7d651c3b664eeeef334194a6dbeaf824d31d2333daf4ed288691b6688
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
3
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
4
4
|
|
|
5
5
|
# Specify your gem's dependencies in user_engage.gemspec
|
|
6
6
|
gemspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,12 +1,58 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
user_engage (0.0.
|
|
4
|
+
user_engage (0.0.2)
|
|
5
|
+
dry-struct (~> 0.4)
|
|
6
|
+
faraday (~> 0.14)
|
|
5
7
|
|
|
6
8
|
GEM
|
|
7
9
|
remote: https://rubygems.org/
|
|
8
10
|
specs:
|
|
11
|
+
addressable (2.5.2)
|
|
12
|
+
public_suffix (>= 2.0.2, < 4.0)
|
|
13
|
+
ast (2.4.0)
|
|
14
|
+
concurrent-ruby (1.0.5)
|
|
15
|
+
crack (0.4.3)
|
|
16
|
+
safe_yaml (~> 1.0.0)
|
|
9
17
|
diff-lcs (1.3)
|
|
18
|
+
dotenv (2.2.1)
|
|
19
|
+
dry-configurable (0.7.0)
|
|
20
|
+
concurrent-ruby (~> 1.0)
|
|
21
|
+
dry-container (0.6.0)
|
|
22
|
+
concurrent-ruby (~> 1.0)
|
|
23
|
+
dry-configurable (~> 0.1, >= 0.1.3)
|
|
24
|
+
dry-core (0.4.3)
|
|
25
|
+
concurrent-ruby (~> 1.0)
|
|
26
|
+
dry-equalizer (0.2.0)
|
|
27
|
+
dry-logic (0.4.2)
|
|
28
|
+
dry-container (~> 0.2, >= 0.2.6)
|
|
29
|
+
dry-core (~> 0.2)
|
|
30
|
+
dry-equalizer (~> 0.2)
|
|
31
|
+
dry-struct (0.4.0)
|
|
32
|
+
dry-core (~> 0.4, >= 0.4.1)
|
|
33
|
+
dry-equalizer (~> 0.2)
|
|
34
|
+
dry-types (~> 0.12, >= 0.12.2)
|
|
35
|
+
ice_nine (~> 0.11)
|
|
36
|
+
dry-types (0.12.2)
|
|
37
|
+
concurrent-ruby (~> 1.0)
|
|
38
|
+
dry-configurable (~> 0.1)
|
|
39
|
+
dry-container (~> 0.3)
|
|
40
|
+
dry-core (~> 0.2, >= 0.2.1)
|
|
41
|
+
dry-equalizer (~> 0.2)
|
|
42
|
+
dry-logic (~> 0.4, >= 0.4.2)
|
|
43
|
+
inflecto (~> 0.0.0, >= 0.0.2)
|
|
44
|
+
faraday (0.14.0)
|
|
45
|
+
multipart-post (>= 1.2, < 3)
|
|
46
|
+
hashdiff (0.3.7)
|
|
47
|
+
ice_nine (0.11.2)
|
|
48
|
+
inflecto (0.0.2)
|
|
49
|
+
multipart-post (2.0.0)
|
|
50
|
+
parallel (1.12.1)
|
|
51
|
+
parser (2.4.0.2)
|
|
52
|
+
ast (~> 2.3)
|
|
53
|
+
powerpack (0.1.1)
|
|
54
|
+
public_suffix (3.0.1)
|
|
55
|
+
rainbow (3.0.0)
|
|
10
56
|
rake (10.5.0)
|
|
11
57
|
rspec (3.7.0)
|
|
12
58
|
rspec-core (~> 3.7.0)
|
|
@@ -21,15 +67,34 @@ GEM
|
|
|
21
67
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
22
68
|
rspec-support (~> 3.7.0)
|
|
23
69
|
rspec-support (3.7.1)
|
|
70
|
+
rubocop (0.52.1)
|
|
71
|
+
parallel (~> 1.10)
|
|
72
|
+
parser (>= 2.4.0.2, < 3.0)
|
|
73
|
+
powerpack (~> 0.1)
|
|
74
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
75
|
+
ruby-progressbar (~> 1.7)
|
|
76
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
77
|
+
ruby-progressbar (1.9.0)
|
|
78
|
+
safe_yaml (1.0.4)
|
|
79
|
+
unicode-display_width (1.3.0)
|
|
80
|
+
vcr (4.0.0)
|
|
81
|
+
webmock (3.3.0)
|
|
82
|
+
addressable (>= 2.3.6)
|
|
83
|
+
crack (>= 0.3.2)
|
|
84
|
+
hashdiff
|
|
24
85
|
|
|
25
86
|
PLATFORMS
|
|
26
87
|
ruby
|
|
27
88
|
|
|
28
89
|
DEPENDENCIES
|
|
29
90
|
bundler (~> 1.16)
|
|
91
|
+
dotenv (~> 2.2)
|
|
30
92
|
rake (~> 10.0)
|
|
31
93
|
rspec (~> 3.0)
|
|
94
|
+
rubocop (~> 0.52)
|
|
32
95
|
user_engage!
|
|
96
|
+
vcr (~> 4.0)
|
|
97
|
+
webmock (~> 3.3)
|
|
33
98
|
|
|
34
99
|
BUNDLED WITH
|
|
35
100
|
1.16.1
|
|
File without changes
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# UserEngage - NOT READY YET!
|
|
1
|
+
# UserEngage - NOT READY YET! [](https://travis-ci.org/CompanyMood/user_engage-ruby)
|
|
2
2
|
|
|
3
3
|
This gem implements the ruby bindings for https://userengage.com.
|
|
4
4
|
|
|
@@ -37,6 +37,10 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
|
37
37
|
|
|
38
38
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
|
39
39
|
|
|
40
|
+
## Open ToDos
|
|
41
|
+
|
|
42
|
+
See [our open todo list](https://github.com/CompanyMood/user_engage-ruby/blob/master/TODO.md)
|
|
43
|
+
|
|
40
44
|
## Contributing
|
|
41
45
|
|
|
42
46
|
Bug reports and pull requests are welcome on GitHub at https://github.com/CompanyMood/user_engage-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/Rakefile
CHANGED
data/TODO.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Open ToDos:
|
|
2
|
+
## Users
|
|
3
|
+
* [ ] Create user
|
|
4
|
+
* [ ] Update user
|
|
5
|
+
* [x] Find user by email
|
|
6
|
+
* [x] Find user by key
|
|
7
|
+
* [x] Find user by phone number
|
|
8
|
+
* [x] Find user by date
|
|
9
|
+
* [x] Delete user
|
|
10
|
+
* [ ] Filter users by custom attribute
|
|
11
|
+
* [ ] Get single user details
|
|
12
|
+
* [ ] Get all users details
|
|
13
|
+
* [ ] Get user segments
|
|
14
|
+
* [ ] Add tag
|
|
15
|
+
* [ ] Remove tag
|
|
16
|
+
* [ ] Add list
|
|
17
|
+
* [ ] Remove list
|
|
18
|
+
* [ ] Set attribute
|
|
19
|
+
* [ ] Set multiple attributes
|
|
20
|
+
* [ ] Remove attribute
|
|
21
|
+
* [ ] Get user ping hits
|
|
22
|
+
* [ ] Get user timeline
|
|
23
|
+
* [ ] Get user events
|
|
24
|
+
* [ ] Get user emails
|
|
25
|
+
## Users - custom ID requests
|
|
26
|
+
* [ ] Update user
|
|
27
|
+
* [ ] Find user by ID
|
|
28
|
+
* [ ] Delete user
|
|
29
|
+
* [ ] Get single user details
|
|
30
|
+
* [ ] Get user segments
|
|
31
|
+
* [ ] Add tag
|
|
32
|
+
* [ ] Remove tag
|
|
33
|
+
* [ ] Add list
|
|
34
|
+
* [ ] Remove list
|
|
35
|
+
* [ ] Set attribute
|
|
36
|
+
* [ ] Set multiple attributes
|
|
37
|
+
* [ ] Remove attribute
|
|
38
|
+
* [ ] Get user ping hits
|
|
39
|
+
* [ ] Get user timeline
|
|
40
|
+
* [ ] Get user events
|
|
41
|
+
* [ ] Get user emails
|
|
42
|
+
## CRM
|
|
43
|
+
* [ ] Create company
|
|
44
|
+
* [ ] Update company
|
|
45
|
+
* [ ] Delete company
|
|
46
|
+
* [ ] Get company
|
|
47
|
+
* [ ] Get all companies
|
|
48
|
+
* [ ] Set attribute
|
|
49
|
+
* [ ] Set multiple attributes
|
|
50
|
+
* [ ] Update company using company ID
|
|
51
|
+
* [ ] Delete company using company ID
|
|
52
|
+
* [ ] Get company using company ID
|
|
53
|
+
* [ ] Set attribute using company ID
|
|
54
|
+
* [ ] Set multiple attributes using company ID
|
|
55
|
+
* [ ] Create deal
|
|
56
|
+
* [ ] Update deal
|
|
57
|
+
* [ ] Get deal
|
|
58
|
+
* [ ] Get all deals
|
|
59
|
+
* [ ] Set attribute
|
|
60
|
+
* [ ] Set multiple attributes
|
|
61
|
+
* [ ] Create activity
|
|
62
|
+
* [ ] Update activity
|
|
63
|
+
* [ ] Get activity
|
|
64
|
+
* [ ] Get all activities
|
|
65
|
+
* [ ] Get all activity types
|
|
66
|
+
* [ ] Create pipeline
|
|
67
|
+
* [ ] Update pipeline
|
|
68
|
+
* [ ] Delete pipeline
|
|
69
|
+
* [ ] Get all pipelines
|
|
70
|
+
* [ ] Create stage
|
|
71
|
+
* [ ] Update stage
|
|
72
|
+
* [ ] Delete stage
|
|
73
|
+
* [ ] Get all stages
|
|
74
|
+
* [ ] Create deal loss reason
|
|
75
|
+
* [ ] Update deal loss reason
|
|
76
|
+
* [ ] Get deal loss reasons
|
|
77
|
+
## Tags
|
|
78
|
+
* [ ] Create tag
|
|
79
|
+
* [ ] Update tag
|
|
80
|
+
* [ ] Delete tag
|
|
81
|
+
* [ ] Get all tags
|
|
82
|
+
## Lists
|
|
83
|
+
* [ ] Create list
|
|
84
|
+
* [ ] Update list
|
|
85
|
+
* [ ] Delete list
|
|
86
|
+
* [ ] Get all lists
|
|
87
|
+
## Attributes
|
|
88
|
+
* [ ] Create attribute
|
|
89
|
+
* [ ] Delete attribute
|
|
90
|
+
* [ ] Get single attribute
|
|
91
|
+
* [ ] Get all attributes
|
|
92
|
+
##Events
|
|
93
|
+
* [ ] Create event
|
|
94
|
+
* [ ] Create event using user ID
|
|
95
|
+
* [ ] Get single event
|
|
96
|
+
* [ ] Get all events
|
|
97
|
+
## Notes
|
|
98
|
+
* [ ] Create user note
|
|
99
|
+
* [ ] Update user note
|
|
100
|
+
* [ ] Get user notes
|
|
101
|
+
* [ ] Delete user note
|
|
102
|
+
* [ ] Create company note
|
|
103
|
+
* [ ] Update company note
|
|
104
|
+
* [ ] Get company notes
|
|
105
|
+
* [ ] Delete company note
|
|
106
|
+
* [ ] Create deal note
|
|
107
|
+
* [ ] Update deal note
|
|
108
|
+
* [ ] Get deal notes
|
|
109
|
+
* [ ] Delete deal note
|
|
110
|
+
## Segments
|
|
111
|
+
* [ ] View segment users
|
|
112
|
+
* [ ] List all segments
|
|
113
|
+
##Conversations
|
|
114
|
+
* [ ] Get single conversation
|
|
115
|
+
* [ ] Get single user conversations
|
|
116
|
+
* [ ] Get all conversations
|
|
117
|
+
* [ ] Create conversations
|
|
118
|
+
* [ ] Create message
|
|
119
|
+
* [ ] Attachments
|
|
120
|
+
* [ ] Webhooks
|
|
121
|
+
## Emails
|
|
122
|
+
* [ ] Send an email
|
|
123
|
+
* [ ] Create email template
|
|
124
|
+
* [ ] Update email template
|
|
125
|
+
* [ ] Delete email template
|
|
126
|
+
* [ ] Get single email template
|
|
127
|
+
* [ ] Get all email templates
|
|
128
|
+
* [ ] Get single SMTP settings
|
|
129
|
+
* [ ] Get all SMTP settings
|
data/bin/console
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'user_engage'
|
|
5
5
|
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
|
8
8
|
|
|
9
9
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require
|
|
10
|
+
# require 'pry'
|
|
11
11
|
# Pry.start
|
|
12
12
|
|
|
13
|
-
require
|
|
13
|
+
require 'irb'
|
|
14
14
|
IRB.start(__FILE__)
|
data/bin/setup
CHANGED
data/lib/user_engage.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require 'user_engage/client'
|
|
2
|
+
require 'user_engage/configuration'
|
|
3
|
+
require 'user_engage/version'
|
|
3
4
|
|
|
4
5
|
module UserEngage
|
|
5
6
|
def self.configuration
|
|
@@ -9,4 +10,8 @@ module UserEngage
|
|
|
9
10
|
def self.config
|
|
10
11
|
yield(configuration)
|
|
11
12
|
end
|
|
13
|
+
|
|
14
|
+
def self.client
|
|
15
|
+
Client.new(configuration)
|
|
16
|
+
end
|
|
12
17
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'user_engage/base_model'
|
|
2
|
+
|
|
3
|
+
module UserEngage
|
|
4
|
+
class Attribute < BaseModel
|
|
5
|
+
################
|
|
6
|
+
## Attributes ##
|
|
7
|
+
################
|
|
8
|
+
attribute :description, Types::String
|
|
9
|
+
attribute :id, Types::Int
|
|
10
|
+
attribute :name_std, Types::String
|
|
11
|
+
attribute :name, Types::String
|
|
12
|
+
attribute :value, Types::Any
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/user_engage/client.rb
CHANGED
|
@@ -1,12 +1,46 @@
|
|
|
1
|
+
require 'faraday'
|
|
2
|
+
|
|
1
3
|
module UserEngage
|
|
2
4
|
class Client
|
|
3
|
-
|
|
4
5
|
######################
|
|
5
6
|
## Instance methods ##
|
|
6
7
|
######################
|
|
8
|
+
def initialize(configuration)
|
|
9
|
+
@configuration = configuration
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Public: Calls the base_url with the given path and parameters
|
|
13
|
+
#
|
|
14
|
+
def get(path, parameters)
|
|
15
|
+
request(:get, path, parameters)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Public: Calls the base_url with the given path and parameters
|
|
19
|
+
#
|
|
20
|
+
def delete(path)
|
|
21
|
+
request(:delete, path)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
#####################
|
|
25
|
+
## Private methods ##
|
|
26
|
+
#####################
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def connection
|
|
30
|
+
Faraday.new(url: host)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def request(method, action_path, parameters = nil)
|
|
34
|
+
path = "api/public#{action_path}"
|
|
35
|
+
connection.public_send(method, path, parameters) do |request|
|
|
36
|
+
request.headers['Authorization'] = "Token #{@configuration.token}"
|
|
37
|
+
request.headers['Content-Type'] = 'application/json'
|
|
38
|
+
request.headers['User-Agent'] = "UserEngage-Ruby/#{UserEngage::VERSION}"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
7
41
|
|
|
8
|
-
def
|
|
9
|
-
|
|
42
|
+
def host
|
|
43
|
+
'https://app.userengage.com/'.freeze
|
|
10
44
|
end
|
|
11
45
|
end
|
|
12
46
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'user_engage/errors'
|
|
2
|
+
|
|
3
|
+
module UserEngage
|
|
4
|
+
module Operation
|
|
5
|
+
module Destroy
|
|
6
|
+
def destroy
|
|
7
|
+
destroy_resource
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
#####################
|
|
11
|
+
## Private methods ##
|
|
12
|
+
#####################
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def destroy_resource
|
|
16
|
+
path = "/#{self.class.resource_name}/#{id}/"
|
|
17
|
+
response = UserEngage.client.delete(path)
|
|
18
|
+
check_for_success!(response)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def check_for_success!(response)
|
|
22
|
+
return true if response.status == 204
|
|
23
|
+
raise(
|
|
24
|
+
UserEngage::NotExistingResourceException,
|
|
25
|
+
"No resource with ID: #{id} found!"
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'user_engage/errors'
|
|
2
|
+
|
|
3
|
+
module UserEngage
|
|
4
|
+
module Operation
|
|
5
|
+
module Find
|
|
6
|
+
def find(params = {})
|
|
7
|
+
check_for_unsupported_params!(params)
|
|
8
|
+
attributes = get_resource(params)
|
|
9
|
+
new(attributes)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
#####################
|
|
13
|
+
## Private methods ##
|
|
14
|
+
#####################
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def get_resource(params)
|
|
18
|
+
path = "/#{resource_name}/search/"
|
|
19
|
+
response = UserEngage.client.get(path, params)
|
|
20
|
+
check_for_existing_resource!(response, params)
|
|
21
|
+
JSON.parse(response.body, symbolize_names: true)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def check_for_existing_resource!(response, params)
|
|
25
|
+
return if response.status == 200
|
|
26
|
+
raise(
|
|
27
|
+
UserEngage::ResourceNotFoundException,
|
|
28
|
+
"No resource with {#{params.inspect}} found!"
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def check_for_unsupported_params!(params)
|
|
33
|
+
unsupported_params = params.keys - supported_find_params
|
|
34
|
+
return if unsupported_params.size.zero?
|
|
35
|
+
|
|
36
|
+
raise(
|
|
37
|
+
UserEngage::InvalidFindAttributeException,
|
|
38
|
+
"Unsupported parameter/s used: #{unsupported_params.join(', ')}"
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
require 'user_engage/base_model'
|
|
2
|
+
require 'user_engage/operation/find'
|
|
3
|
+
require 'user_engage/operation/destroy'
|
|
4
|
+
|
|
5
|
+
require 'user_engage/attribute'
|
|
6
|
+
require 'user_engage/list'
|
|
7
|
+
require 'user_engage/tag'
|
|
8
|
+
|
|
9
|
+
module UserEngage
|
|
10
|
+
class User < BaseModel
|
|
11
|
+
##############
|
|
12
|
+
## Includes ##
|
|
13
|
+
##############
|
|
14
|
+
extend Operation::Find
|
|
15
|
+
include Operation::Destroy
|
|
16
|
+
|
|
17
|
+
################
|
|
18
|
+
## Attributes ##
|
|
19
|
+
################
|
|
20
|
+
attribute :attributes, Types::Array.of(UserEngage::Attribute)
|
|
21
|
+
attribute :browser, Types::String
|
|
22
|
+
attribute :browser_language, Types::String
|
|
23
|
+
attribute :chat_id, Types::Int
|
|
24
|
+
attribute :city, Types::String
|
|
25
|
+
attribute :country, Types::String
|
|
26
|
+
attribute :created_at, Types::DateTime
|
|
27
|
+
attribute :email, Types::String
|
|
28
|
+
attribute :facebook_url, Types::String
|
|
29
|
+
attribute :first_seen, Types::DateTime
|
|
30
|
+
attribute :gender, Types::String
|
|
31
|
+
attribute :google_url, Types::String
|
|
32
|
+
attribute :gravatar_url, Types::String
|
|
33
|
+
attribute :id, Types::Int
|
|
34
|
+
attribute :key, Types::String
|
|
35
|
+
attribute :last_contacted, Types::DateTime
|
|
36
|
+
attribute :last_ip, Types::String
|
|
37
|
+
attribute :last_seen, Types::DateTime
|
|
38
|
+
attribute :linkedin_url, Types::String
|
|
39
|
+
attribute :lists, Types::Array.of(UserEngage::List)
|
|
40
|
+
attribute :name, Types::String
|
|
41
|
+
attribute :notifications, Types::Bool
|
|
42
|
+
attribute :os_type, Types::String
|
|
43
|
+
attribute :page_views, Types::Int
|
|
44
|
+
attribute :phone_number, Types::String
|
|
45
|
+
attribute :region, Types::String
|
|
46
|
+
attribute :resolution, Types::String
|
|
47
|
+
attribute :score, Types::Int
|
|
48
|
+
attribute :status, Types::String
|
|
49
|
+
attribute :tags, Types::Array.of(UserEngage::Tag)
|
|
50
|
+
attribute :timezone, Types::String
|
|
51
|
+
attribute :twitter_url, Types::String
|
|
52
|
+
attribute :unsubscribed, Types::Bool
|
|
53
|
+
attribute :updated_at, Types::DateTime
|
|
54
|
+
attribute :user_id, Types::Any
|
|
55
|
+
|
|
56
|
+
#####################
|
|
57
|
+
## Private methods ##
|
|
58
|
+
#####################
|
|
59
|
+
private_class_method
|
|
60
|
+
|
|
61
|
+
def self.supported_find_params
|
|
62
|
+
%i[email key phone_number date]
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def self.resource_name
|
|
66
|
+
'users'.freeze
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
data/lib/user_engage/version.rb
CHANGED
data/user_engage.gemspec
CHANGED
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
|
|
2
|
-
lib = File.expand_path(
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
4
|
+
require 'user_engage/version'
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name =
|
|
7
|
+
spec.name = 'user_engage'
|
|
8
8
|
spec.version = UserEngage::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
9
|
+
spec.authors = ['Markus Schwed']
|
|
10
|
+
spec.email = ['markus@company-mood.com']
|
|
11
11
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
spec.summary = 'NOT READY YET!! - Ruby bindings for the UserEngage API'
|
|
13
|
+
spec.description = 'UserEngage (https://userengage.com) - '\
|
|
14
|
+
'Keep things simple with a single platform '\
|
|
15
|
+
'for all your messaging and relationships with customers.'
|
|
16
|
+
spec.homepage = 'https://github.com/CompanyMood/user_engage-ruby'
|
|
17
|
+
spec.license = 'MIT'
|
|
16
18
|
|
|
17
19
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
18
20
|
f.match(%r{^(test|spec|features)/})
|
|
19
21
|
end
|
|
20
|
-
spec.bindir =
|
|
22
|
+
spec.bindir = 'exe'
|
|
21
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
|
-
spec.require_paths = [
|
|
24
|
+
spec.require_paths = ['lib']
|
|
23
25
|
|
|
24
|
-
spec.
|
|
25
|
-
spec.
|
|
26
|
-
|
|
26
|
+
spec.add_runtime_dependency 'dry-struct', '~> 0.4'
|
|
27
|
+
spec.add_runtime_dependency 'faraday', '~> 0.14'
|
|
28
|
+
|
|
29
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
30
|
+
spec.add_development_dependency 'dotenv', '~> 2.2'
|
|
31
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.52'
|
|
34
|
+
spec.add_development_dependency 'vcr', '~> 4.0'
|
|
35
|
+
spec.add_development_dependency 'webmock', '~> 3.3'
|
|
27
36
|
end
|
metadata
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: user_engage
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Markus Schwed
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-02-
|
|
11
|
+
date: 2018-02-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: dry-struct
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0.4'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0.4'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: faraday
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0.14'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0.14'
|
|
13
41
|
- !ruby/object:Gem::Dependency
|
|
14
42
|
name: bundler
|
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -24,6 +52,20 @@ dependencies:
|
|
|
24
52
|
- - "~>"
|
|
25
53
|
- !ruby/object:Gem::Version
|
|
26
54
|
version: '1.16'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: dotenv
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '2.2'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '2.2'
|
|
27
69
|
- !ruby/object:Gem::Dependency
|
|
28
70
|
name: rake
|
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -52,6 +94,48 @@ dependencies:
|
|
|
52
94
|
- - "~>"
|
|
53
95
|
- !ruby/object:Gem::Version
|
|
54
96
|
version: '3.0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rubocop
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0.52'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0.52'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: vcr
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '4.0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '4.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: webmock
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '3.3'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '3.3'
|
|
55
139
|
description: UserEngage (https://userengage.com) - Keep things simple with a single
|
|
56
140
|
platform for all your messaging and relationships with customers.
|
|
57
141
|
email:
|
|
@@ -62,18 +146,29 @@ extra_rdoc_files: []
|
|
|
62
146
|
files:
|
|
63
147
|
- ".gitignore"
|
|
64
148
|
- ".rspec"
|
|
149
|
+
- ".rubocop.yml"
|
|
65
150
|
- ".travis.yml"
|
|
66
151
|
- CODE_OF_CONDUCT.md
|
|
67
152
|
- Gemfile
|
|
68
153
|
- Gemfile.lock
|
|
69
154
|
- LICENSE.txt
|
|
155
|
+
- NetrwTreeListing 3
|
|
70
156
|
- README.md
|
|
71
157
|
- Rakefile
|
|
158
|
+
- TODO.md
|
|
72
159
|
- bin/console
|
|
73
160
|
- bin/setup
|
|
74
161
|
- lib/user_engage.rb
|
|
162
|
+
- lib/user_engage/attribute.rb
|
|
163
|
+
- lib/user_engage/base_model.rb
|
|
75
164
|
- lib/user_engage/client.rb
|
|
76
165
|
- lib/user_engage/configuration.rb
|
|
166
|
+
- lib/user_engage/errors.rb
|
|
167
|
+
- lib/user_engage/list.rb
|
|
168
|
+
- lib/user_engage/operation/destroy.rb
|
|
169
|
+
- lib/user_engage/operation/find.rb
|
|
170
|
+
- lib/user_engage/tag.rb
|
|
171
|
+
- lib/user_engage/user.rb
|
|
77
172
|
- lib/user_engage/version.rb
|
|
78
173
|
- user_engage.gemspec
|
|
79
174
|
homepage: https://github.com/CompanyMood/user_engage-ruby
|