mixmax 0.1.0 → 0.1.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c390237ba8e48435e77f2662b3ab8a9318b777941445f1b3cc0233c9fc2d7c02
4
- data.tar.gz: 0be9e4e4be6383ba0ad580f5d00b4b465b5fa58be1674b50c3906cbd6bf07741
3
+ metadata.gz: 2e142d54d7660249a543181266a988344a188d315d0aae84dc5ce83ae0fb0c58
4
+ data.tar.gz: d4c89f88caa45ad1fe80968c4d278669c502e4a9a72149e15498c74e98dbff38
5
5
  SHA512:
6
- metadata.gz: aafd6412c5dc52665db68a376f7c0ca104d86722e7bd396e5d3c6c93db1ebca308aba6c4120dc033c9354ad55e41cb83dc0c98efdcdf5fa17f097c4779e717d4
7
- data.tar.gz: a354f8836bff545867f65eba4f8a79c91757816fe77ec4abd72fb7c9661dc57b09b67327ac9a1a683ad675bbe0ba1c250462f2d4f9c15ee2d1da969f174f261c
6
+ metadata.gz: b5c0e233d03b4943e97508b928f2c57499bbef4ad51d9af4df9f609385299c3dfa0484c518ca7c9f83f73e86bcde4e526434d26d013bf013ec9d437f62c12b9c
7
+ data.tar.gz: ecd1a81f20887f9e81133ea466a91e16005312cceb39f3eb3a03bc0e8c6989e72dbbad8fc8476f8aed7373de577029b20503289d2ea79a8d513ba1016e2c4d73
data/.travis.yml CHANGED
@@ -1,7 +1,5 @@
1
- ---
2
1
  sudo: false
3
2
  language: ruby
4
- cache: bundler
5
3
  rvm:
6
- - 2.6.2
7
- before_install: gem install bundler -v 1.17.2
4
+ - 2.5.1
5
+ before_install: gem install bundler -v 1.16.1
data/Gemfile.lock ADDED
@@ -0,0 +1,43 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mixmax (0.1.5)
5
+ httparty (~> 0.16.4)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.3)
11
+ httparty (0.16.4)
12
+ mime-types (~> 3.0)
13
+ multi_xml (>= 0.5.2)
14
+ mime-types (3.2.2)
15
+ mime-types-data (~> 3.2015)
16
+ mime-types-data (3.2019.0331)
17
+ multi_xml (0.6.0)
18
+ rake (10.5.0)
19
+ rspec (3.8.0)
20
+ rspec-core (~> 3.8.0)
21
+ rspec-expectations (~> 3.8.0)
22
+ rspec-mocks (~> 3.8.0)
23
+ rspec-core (3.8.0)
24
+ rspec-support (~> 3.8.0)
25
+ rspec-expectations (3.8.3)
26
+ diff-lcs (>= 1.2.0, < 2.0)
27
+ rspec-support (~> 3.8.0)
28
+ rspec-mocks (3.8.0)
29
+ diff-lcs (>= 1.2.0, < 2.0)
30
+ rspec-support (~> 3.8.0)
31
+ rspec-support (3.8.0)
32
+
33
+ PLATFORMS
34
+ ruby
35
+
36
+ DEPENDENCIES
37
+ bundler (~> 1.16)
38
+ mixmax!
39
+ rake (~> 10.0)
40
+ rspec (~> 3.0)
41
+
42
+ BUNDLED WITH
43
+ 1.17.2
data/README.md CHANGED
@@ -1,9 +1,3 @@
1
- # Mixmax
2
-
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/mixmax`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
6
-
7
1
  ## Installation
8
2
 
9
3
  Add this line to your application's Gemfile:
@@ -22,7 +16,48 @@ Or install it yourself as:
22
16
 
23
17
  ## Usage
24
18
 
25
- TODO: Write usage instructions here
19
+ First you need to initialize a new instance of Mixmax and pass in your API key
20
+
21
+ ```ruby
22
+ mixmax = Mixmax.new 'API_KEY'
23
+ ```
24
+
25
+ If you're using rails, then you probably want to put it in your initializers:
26
+
27
+ **config/initializers/mixmax.rb**
28
+ ```ruby
29
+ MixmaxApi = Mixmax.new Rails.applications.credentials.mixmax_secret_key
30
+ ```
31
+
32
+ Now you can do stuff like:
33
+
34
+ ```ruby
35
+ mixmax.sequences
36
+ # => [{"_id"=>"5ca6452dbf0cjs0jdf35800d7ed", "userId"=>"5ca50420262cdj2ie9361d39", "createdAt"=>"2019-04-04T17:55:57.201Z", "variables"=>["Email"], "linkTrackingEnabled"=>false, "fileTrackingEnabled"=>false, "notificationsEnabled"=>false, "name"=>"Mickey Mouse", "timezone"=>"America/Mexico_City", "stages"=>["5ca6452d9353js03kgfh20e5b8c2", "5ca64560cfj30dnwl5eef0ffa"], "bcc"=>nil, "cc"=>nil, "teamIds"=>nil}]
37
+ ```
38
+ ```ruby
39
+ mixmax.sequence_recipients 'SEQUENCE_ID'
40
+
41
+ recipients = '{
42
+ "recipients": [{
43
+ "email": "hello@mixmax.com",
44
+ "variables": {
45
+ "name": "Hugo Brockman",
46
+ "email": "hello@mixmax.com"
47
+ }
48
+ },
49
+ {
50
+ "email": "careers@mixmax.com",
51
+ "variables": {
52
+ "name": "Mixmax hello",
53
+ "email": "careers@mixmax.com"
54
+ }
55
+ }],
56
+ "scheduledAt": 1490300970312
57
+ }'
58
+
59
+ mixmax.add_to_sequence('SEQUENCE_ID', recipients)
60
+ ```
26
61
 
27
62
  ## Development
28
63
 
@@ -32,7 +67,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
67
 
33
68
  ## Contributing
34
69
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/mixmax.
70
+ Bug reports and pull requests are welcome on GitHub at https://github.com/mickeytgl/mixmax.
36
71
 
37
72
  ## License
38
73
 
data/lib/mixmax.rb CHANGED
@@ -1,10 +1,62 @@
1
- require "mixmax/version"
1
+ require_relative 'mixmax/version'
2
+ require 'httparty'
2
3
 
3
- module Mixmax
4
- def self.hello
5
- "hello world"
4
+ class Mixmax
5
+ include HTTParty
6
+
7
+ attr_reader :headers
8
+
9
+ def initialize(api_key)
10
+ @headers = {
11
+ 'X-API-Token' => api_key, 'Content-Type' => 'application/json'
12
+ }
13
+ end
14
+
15
+ base_uri 'https://api.mixmax.com'
16
+
17
+ def sequences(query: {}, all: false)
18
+ sequences = []
19
+ next_param = ''
20
+
21
+ loop do
22
+ response = get "/v1/sequences/#{next_param}"
23
+ sequences += response['results']
24
+ return sequences unless response['hasNext'] && all
25
+ next_param = "?next=#{response['next']}"
26
+ end
27
+ end
28
+
29
+ def sequence(sequence_id)
30
+ get "/v1/sequences/#{sequence_id}"
31
+ end
32
+
33
+ def sequence_recipients(sequence_id)
34
+ get "/v1/sequences/#{sequence_id}/recipients"
35
+ end
36
+
37
+ def add_to_sequence(sequence_id, recipients:)
38
+ post "/v1/sequences/#{sequence_id}/recipients", query: recipients
39
+ end
40
+
41
+ def user_preferences
42
+ get '/v1/userpreferences/me'
6
43
  end
7
44
 
8
- class Error < StandardError; end
9
- # Your code goes here...
45
+ def change_user_preferences(query: {})
46
+ patch '/v1/userpreferences/me', body: query
47
+ end
48
+
49
+ def remove_recipient_from_sequence(sequence_id, emails:)
50
+ post "/v1/sequences/#{sequence_id}/cancel", query: { emails: Array(emails) }
51
+ end
52
+
53
+ private
54
+
55
+ def get(route, query: {})
56
+ self.class.get(route, headers: headers, body: query.to_json).parsed_response
57
+ end
58
+
59
+ def post(route, query: {})
60
+ self.class.post(route, headers: headers, body: query.to_json)
61
+ end
10
62
  end
@@ -1,3 +1,3 @@
1
- module Mixmax
2
- VERSION = "0.1.0"
1
+ class Mixmax
2
+ VERSION = "0.1.9"
3
3
  end
data/mixmax.gemspec CHANGED
@@ -9,21 +9,19 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Miguel Torres"]
10
10
  spec.email = ["migueltg93@gmail.com"]
11
11
 
12
- spec.summary = %q{Example short summary}
13
- spec.description = %q{Example short summary}
14
- spec.homepage = "https://github.com/mickeytgl/mixmax2"
12
+ spec.summary = %q{A ruby wrapper around MixMax's API}
13
+ spec.homepage = "https://github.com/mickeytgl/mixmax"
15
14
  spec.license = "MIT"
16
-
17
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
18
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
+ f.match(%r{^(test|spec|features)/})
19
17
  end
20
18
  spec.bindir = "exe"
21
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
20
  spec.require_paths = ["lib"]
23
21
 
24
- spec.add_development_dependency "bundler", "~> 1.17"
22
+ spec.add_development_dependency "bundler", "~> 1.16"
25
23
  spec.add_development_dependency "rake", "~> 10.0"
26
24
  spec.add_development_dependency "rspec", "~> 3.0"
27
25
 
28
- spec.add_dependency "httparty", "~> 0.17.1"
26
+ spec.add_dependency "httparty", "~> 0.16.4"
29
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixmax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Torres
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-07 00:00:00.000000000 Z
11
+ date: 2019-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '1.16'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,15 +58,15 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.17.1
61
+ version: 0.16.4
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.17.1
69
- description: Example short summary
68
+ version: 0.16.4
69
+ description:
70
70
  email:
71
71
  - migueltg93@gmail.com
72
72
  executables: []
@@ -77,6 +77,7 @@ files:
77
77
  - ".rspec"
78
78
  - ".travis.yml"
79
79
  - Gemfile
80
+ - Gemfile.lock
80
81
  - LICENSE.txt
81
82
  - README.md
82
83
  - Rakefile
@@ -85,8 +86,7 @@ files:
85
86
  - lib/mixmax.rb
86
87
  - lib/mixmax/version.rb
87
88
  - mixmax.gemspec
88
- - tags
89
- homepage: https://github.com/mickeytgl/mixmax2
89
+ homepage: https://github.com/mickeytgl/mixmax
90
90
  licenses:
91
91
  - MIT
92
92
  metadata: {}
@@ -108,5 +108,5 @@ requirements: []
108
108
  rubygems_version: 3.0.3
109
109
  signing_key:
110
110
  specification_version: 4
111
- summary: Example short summary
111
+ summary: A ruby wrapper around MixMax's API
112
112
  test_files: []
data/tags DELETED
@@ -1,18 +0,0 @@
1
- !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
- !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
- !_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
4
- !_TAG_PROGRAM_AUTHOR Universal Ctags Team //
5
- !_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
6
- !_TAG_PROGRAM_URL https://ctags.io/ /official site/
7
- !_TAG_PROGRAM_VERSION 0.0.0 /2614dbe/
8
- Contributing README.md /^## Contributing$/;" s
9
- Development README.md /^## Development$/;" s
10
- Error lib/mixmax.rb /^ class Error < StandardError; end$/;" c module:Mixmax
11
- Installation README.md /^## Installation$/;" s
12
- License README.md /^## License$/;" s
13
- Mixmax README.md /^# Mixmax$/;" c
14
- Mixmax lib/mixmax.rb /^module Mixmax$/;" m
15
- Mixmax lib/mixmax/version.rb /^module Mixmax$/;" m
16
- Mixmax spec/mixmax_spec.rb /^RSpec.describe Mixmax do$/;" d
17
- Usage README.md /^## Usage$/;" s
18
- hello lib/mixmax.rb /^ def self.hello$/;" S module:Mixmax