oneview 0.0.2 → 0.0.4

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: a88e303e4dc6adc6cfcbee4b550e953437e9fd44
4
- data.tar.gz: 7c00f8e5124fb7a3934fa4257ba66a7eb7ca79bc
3
+ metadata.gz: 6cf6bfab53f6829c6309a02e640d0232e06b73bd
4
+ data.tar.gz: 3016192c9ea499f1f16eb09d44805520d7204772
5
5
  SHA512:
6
- metadata.gz: 740f499533d842f9be4242839c8580ae08aa5981042a39d432cedc8ed8bafafec1778714caccf727a8ac0042cc51871c275313265b5cb720b19c8dedacb61030
7
- data.tar.gz: a7aca78abdeb1561de657eb6a5b79c0121fcf827d140db21b7adb59cc339a7e14b6dab33bbd6fb29f649dca7eb1ecad42cbe5ba4f9d61eb0895c8d1388a9c7ce
6
+ metadata.gz: fba39829a16584fd30f85067667a9365264fba729e7e0aa74ecf50d0b6ea6ff341af616d61b76364801357934200f8d975150fe75b5c950e5189e25d97b247ea
7
+ data.tar.gz: 66f2867966193571c881a66927f5f557aad4244a6f562e3d69b5ee46d1d2465795e613819936d907374ea1d0cf88afada055f34ed966f4cccac466a08f18d4db
data/README.md CHANGED
@@ -32,7 +32,7 @@ With the client instance, you can access the following resources:
32
32
 
33
33
  * Contacts (client.contacts) **Only creation**
34
34
  * Sms Sending (client.sms) **Not Implemented Yet**
35
- * Email Sending (client.email) **Not Implemented Yet**
35
+ * Email Sending (client.email)
36
36
 
37
37
  ## Using the resources
38
38
  ### Creating new records
@@ -45,6 +45,7 @@ Currently the following entities are implemented:
45
45
  * [Contact](lib/oneview/entity/contact.rb)
46
46
  * [Phone](lib/oneview/entity/phone.rb)
47
47
  * [Dynamic Field](lib/oneview/entity/dynamic_field.rb)
48
+ * [Email](lib/oneview/entity/email.rb)
48
49
 
49
50
  ### Reading the response
50
51
  All methods return an Oneview::Client::Response object. This objects contains the following attributes:
@@ -0,0 +1,21 @@
1
+ module Oneview
2
+ module Api
3
+ class Emails < Client
4
+ require_all 'oneview/entity', 'email'
5
+
6
+ base_uri "http://www.oneview.com.br/api/senders/send_email"
7
+
8
+ def create(data)
9
+ return parse_response(self.class.post("/", :body => build_body(data), :headers => header)) if data.is_a?(Hash)
10
+ return parse_response(self.class.post("/", :body => build_body(data.as_parameter), :headers => header)) if data.is_a?(Oneview::Entity::Email)
11
+ raise ArgumentError
12
+ end
13
+ alias :new :create
14
+
15
+ private
16
+ def build_body(parameters)
17
+ super(parameters)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -11,7 +11,7 @@ module Oneview
11
11
  extend Oneview::ClassMethods
12
12
  include HTTParty
13
13
 
14
- require_all 'oneview/api', 'contacts'
14
+ require_all 'oneview/api', 'contacts', 'emails'
15
15
 
16
16
  attr_accessor :access_token
17
17
 
@@ -24,6 +24,10 @@ module Oneview
24
24
  Oneview::Api::Contacts.new(@access_token)
25
25
  end
26
26
 
27
+ def emails
28
+ Oneview::Api::Emails.new(@access_token)
29
+ end
30
+
27
31
  protected
28
32
  def header
29
33
  {"Content-Type" => "application/json", "Accept" => "application/json"}
@@ -0,0 +1,7 @@
1
+ module Oneview
2
+ module Entity
3
+ class Email < Base
4
+ attr_accessor :from, :to, :body, :subject, :schedule
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Oneview
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Oneview::Api::Emails do
4
+ describe "creating" do
5
+ let(:email_params) {{:from => "from@email.com", :to => "to@email.com", :body => "body", :subject => "subject", :schedule => "14/05/2014 15:30", :access_token => "abc"}}
6
+ let(:header) {{"Content-Type" => "application/json", "Accept" => "application/json"}}
7
+
8
+ before(:each) do
9
+ @email = Oneview::Entity::Email.new
10
+ @email.from = "from@email.com"
11
+ @email.to = "to@email.com"
12
+ @email.body = "body"
13
+ @email.subject = "subject"
14
+ @email.schedule = "14/05/2014 15:30"
15
+
16
+ stub_request(:post, "http://www.oneview.com.br/api/senders/send_email/").to_return(:status => 200)
17
+ end
18
+
19
+ describe "with raw parameters" do
20
+ it "should post to the send email url" do
21
+ expect(Oneview::Api::Emails).to receive(:post).with("/", :body => email_params.to_json, :headers => header).and_call_original
22
+
23
+ Oneview.new("abc").emails.create(email_params)
24
+ end
25
+ end
26
+
27
+ describe "with entity parameter" do
28
+ it "should post to the send email url" do
29
+ expect(Oneview::Api::Emails).to receive(:post).with("/", :body => @email.as_parameter.merge(:access_token => "abc").to_json, :headers => header).and_call_original
30
+
31
+ Oneview.new("abc").emails.create(@email)
32
+ end
33
+ end
34
+
35
+ describe "with invalid parameter" do
36
+ it "should raise ArgumentError when passing neither a Hash nor an Email" do
37
+ expect{Oneview.new("abc").emails.create(Array.new)}.to raise_error(ArgumentError)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Oneview::Entity::Email do
4
+ describe "as_parameter" do
5
+ let(:email_as_parameter) {{"from" => "test@test.com", "to" => "test2@test2.com", "body" => "Bodys Test",
6
+ "subject" => "Subjects Test"}}
7
+
8
+ it "should return the email as parameter" do
9
+ email = Oneview::Entity::Email.new
10
+
11
+ email.from = "test@test.com"
12
+ email.to = "test2@test2.com"
13
+ email.body = "Bodys Test"
14
+ email.subject = "Subjects Test"
15
+
16
+ expect(email.as_parameter).to eq(email_as_parameter)
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Berdugo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-11 00:00:00.000000000 Z
11
+ date: 2014-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -54,17 +54,21 @@ files:
54
54
  - Rakefile
55
55
  - lib/oneview.rb
56
56
  - lib/oneview/api/contacts.rb
57
+ - lib/oneview/api/emails.rb
57
58
  - lib/oneview/client.rb
58
59
  - lib/oneview/entity/base.rb
59
60
  - lib/oneview/entity/contact.rb
60
61
  - lib/oneview/entity/dynamic_field.rb
62
+ - lib/oneview/entity/email.rb
61
63
  - lib/oneview/entity/phone.rb
62
64
  - lib/oneview/version.rb
63
65
  - oneview.gemspec
64
66
  - spec/oneview/api/contacts_spec.rb
67
+ - spec/oneview/api/emails_spec.rb
65
68
  - spec/oneview/client_spec.rb
66
69
  - spec/oneview/entity/contact_spec.rb
67
70
  - spec/oneview/entity/dynamic_field_spec.rb
71
+ - spec/oneview/entity/email_spec.rb
68
72
  - spec/oneview/entity/phone_spec.rb
69
73
  - spec/oneview_spec.rb
70
74
  - spec/spec_helper.rb
@@ -88,15 +92,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
92
  version: '0'
89
93
  requirements: []
90
94
  rubyforge_project:
91
- rubygems_version: 2.4.2
95
+ rubygems_version: 2.4.5
92
96
  signing_key:
93
97
  specification_version: 4
94
98
  summary: This gem provides integration with Oneview APIs (http://www.oneview.com.br/)
95
99
  test_files:
96
100
  - spec/oneview/api/contacts_spec.rb
101
+ - spec/oneview/api/emails_spec.rb
97
102
  - spec/oneview/client_spec.rb
98
103
  - spec/oneview/entity/contact_spec.rb
99
104
  - spec/oneview/entity/dynamic_field_spec.rb
105
+ - spec/oneview/entity/email_spec.rb
100
106
  - spec/oneview/entity/phone_spec.rb
101
107
  - spec/oneview_spec.rb
102
108
  - spec/spec_helper.rb