api-moip-assinaturas 0.0.6 → 0.1.0

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yzg2NDc5NDk0MzhkNGVlZTlhZmMxZTdmMmJkYmI4MmI4ZTU4ZDZiMA==
4
+ MmJmZjI1NGUxYzM2MThmYzExNTI4ODgzNDE0Njg4MjFiODljOGQwNQ==
5
5
  data.tar.gz: !binary |-
6
- MGNlZTgwYTY1ZDIwYzgyMDEwZjlhYWRmN2JjYjA1N2QxMzEyYzI1Nw==
6
+ N2Q4YTBlZTMzOGFjMjA0MGNmNWE1MWVkNzc2Y2YxMmQyZmUzYzVhMw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTg3NTU3OWU4M2Y3YTc3ZGM5YjYyYWQ1M2U4NGQ0ZGIyMzI4NjRlNTFjODNm
10
- ZTUxZTZhZDY2ZTI3MmM4Njg4ZDc2YjFhNjk1MWZkOGIyNzBhYzBiNzJjOTRj
11
- Y2VhZmIxNzJkYTRjMWE0MWZjYWZkODI0NDYyNzcxNjRmNmI3YmQ=
9
+ MmUxZjYyYzdjZmNlNjM4MTY4MDU2ODFlNjY2M2VhOGJkY2VmYjcyNTZmMTU0
10
+ NmEwZDI5YmVmMzgwMGIwNTU1MjhiY2Y2Njg4MGE3YjBhZjNlYTUwMDMyZDA1
11
+ MTY3YTk5YWM3MmE4OGQ5MmM5M2RlNTE2MTUyZmNjNDYzYzhmYzU=
12
12
  data.tar.gz: !binary |-
13
- ZGQ1NDNhNjM1MDBkMGM4NGM4NjQ3NzNiYTBkN2NiZWExZTNkZmI0MWM0NGRj
14
- ZDUyZTQzMDI5NDUzOTRhYzUyYTM1NjZhYzlmMDc0MzViZjYyMTQyN2Y4MzMw
15
- ODJkYTg3MmZlMGEyZDQ3YzhmNDBhNzVhYTQ1NGIwYzhjMmRjNTY=
13
+ NmZmNmQwOTYxZDRmODBlMGRiMTJmOGU3NTYyZWNlYzdkNDY3ZDA3NmEwMTdl
14
+ MWQyNDQ4YzY0ODUyYmJjMWM3ODYwNThkY2Y2ZjBmZGI4YmIxY2E5MTI3ZGY2
15
+ MDQ1NDJkYzUzOGQwOTdjYzZiNWVmODhmMzVhNGQ4Nzc4ZGJmMjk=
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'api-moip-assinaturas'
3
- s.version = '0.0.6'
4
- s.date = '2013-06-05'
3
+ s.version = '0.1.0'
4
+ s.date = '2013-06-10'
5
5
  s.summary = "Moip Assinaturas by Pixxel"
6
6
  s.description = "Gem desenvolvida para atender aos requisitos do moip api de assinaturas"
7
7
  s.authors = ["Douglas Rossignolli"]
data/lib/moip.rb CHANGED
@@ -1,14 +1,15 @@
1
+ require "httparty"
2
+ require "json"
3
+ require "active_model"
4
+
1
5
  module Moip
2
6
  end
3
7
 
4
8
  # imports para o statup
5
- require "httparty"
6
- require "json"
7
- require "active_model"
8
- require "moip/configuration"
9
- require "moip/header"
10
- require "moip/model"
11
- require "moip/webhooks"
9
+ Dir["#{Dir.pwd}/lib/moip/**.rb"].each { |file| require file }
12
10
 
13
11
  # require all models
14
- Dir["#{Dir.pwd}/lib/moip/models/**"].each { |file| require file }
12
+ Dir["#{Dir.pwd}/lib/moip/models/**"].each { |file| require file }
13
+
14
+ Moip.configure {|config| config.token = "3JECRRW49I3HHKHI8VC517EDMS2SS1S9"; config.acount_key = "AZQDHSQ8MSL3F57JBERR59HKBVXVDMSDXQ8V1S6V"}
15
+
@@ -20,6 +20,5 @@ module Moip
20
20
  self.token = ""
21
21
  self.acount_key = ""
22
22
  end
23
-
24
- end
23
+ end
25
24
  end
data/lib/moip/header.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  module Moip
2
2
  module Header
3
- def default_header body = nil
3
+ def default_header json = nil
4
4
  header = {}
5
5
  header.merge! :basic_auth => auth
6
6
  header.merge! :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
7
- header.merge! :body => body.to_json if body
7
+ header.merge! :body => json if json
8
8
 
9
9
  header
10
10
  end
@@ -17,7 +17,9 @@ module Moip
17
17
  url = "https://sandbox.moip.com.br/assinaturas/v1/#{model.to_s}"
18
18
  url << "/#{options[:code]}" if options[:code]
19
19
  url << "/#{options[:status]}" if options[:status]
20
+ url << "?#{options[:params]}" if options[:params]
20
21
  url
21
22
  end
23
+
22
24
  end
23
25
  end
data/lib/moip/model.rb CHANGED
@@ -1,12 +1,35 @@
1
+ # encoding: utf-8
1
2
  module Moip
2
- module Model
3
+ class Model
3
4
  include ActiveModel::Validations
4
5
  include ActiveModel::Serialization
5
- include ActiveModel::Serializers
6
-
7
- def build_with_hash params
8
- self.params.each do |attr, value|
9
- self.send("#{attr}=".to_sym, value) if self.respond_to? attr
6
+
7
+ def to_json
8
+ hash = self.serializable_hash.delete_if {|key, value| value.nil? }
9
+ hash.to_json
10
+ end
11
+
12
+ def set_parameters params
13
+ params.each do |key, value|
14
+ self.send("#{key}=".to_sym, value)
15
+ end
16
+ end
17
+
18
+ class << self
19
+ # metodo que cria um objeto e seta os seus parametros se responder pela chave
20
+ # recebe um Hash como parametro
21
+ def build params
22
+ if params.is_a? Hash
23
+ object = new
24
+
25
+ params.each do |key, value|
26
+ object.send("#{key}=".to_sym, value) if object.respond_to? key.to_sym
27
+ end
28
+
29
+ object
30
+ else
31
+ raise Exception.new "unexpected parameter, expected Hash, received #{params.class}"
32
+ end
10
33
  end
11
34
  end
12
35
 
@@ -0,0 +1,26 @@
1
+ class Moip::Address < Moip::Model
2
+
3
+ attr_accessor :street, :number, :complement,
4
+ :district, :city, :state, :country, :zipcode
5
+
6
+ validates :street, :number,
7
+ :district, :city, :state, :country,
8
+ :zipcode, :presence => true
9
+
10
+ validates_format_of :number, :with => /[0-9]{1,6}/
11
+ validates_format_of :zipcode, :with => /[0-9]{8}/
12
+
13
+ def attributes
14
+ {
15
+ "street" => street,
16
+ "number" => number,
17
+ "complement" => complement,
18
+ "district" => district,
19
+ "city" => city,
20
+ "state" => state,
21
+ "country" => country,
22
+ "zipcode" => zipcode
23
+ }
24
+ end
25
+
26
+ end
@@ -0,0 +1,30 @@
1
+ class Moip::BillingInfo < Moip::Model
2
+
3
+ attr_accessor :holder_name, :number, :expiration_month, :expiration_year
4
+
5
+ validates :holder_name, :number, :expiration_month, :expiration_year, :presence => true
6
+
7
+ validates_format_of :expiration_month, :with => /[0-9]{2}/
8
+ validates_format_of :expiration_year, :with => /[0-9]{2}/
9
+ validates_format_of :number, :with => /[0-9]{16}/
10
+
11
+
12
+ def attributes
13
+ {
14
+ "holder_name" => holder_name,
15
+ "number" => number,
16
+ "expiration_month" => expiration_month,
17
+ "expiration_year" => expiration_year
18
+ }
19
+ end
20
+
21
+ def to_json
22
+ hash = { :credit_card => self.serializable_hash }
23
+ hash.to_json
24
+ end
25
+
26
+ def to_hash
27
+ { :credit_card => self.serializable_hash }
28
+ end
29
+
30
+ end
@@ -1,21 +1,106 @@
1
- class Moip::Costumer
1
+ # encoding: utf-8
2
+ class Moip::Costumer < Moip::Model
2
3
  include HTTParty
3
4
  include Moip::Header
4
-
5
- def list
6
- self.class.get(base_url(:costumers), default_header).parsed_response
5
+
6
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#criar_cliente
7
+ attr_accessor :code, :email, :fullname, :cpf, :phone_area_code,
8
+ :phone_number, :birthdate_day, :birthdate_month,
9
+ :birthdate_year, :address, :billing_info, :costumers
10
+
11
+ validates :code, :email, :fullname, :cpf, :phone_area_code,
12
+ :phone_number, :birthdate_day, :birthdate_month,
13
+ :birthdate_year, :presence => true
14
+
15
+ validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :message => "Invalid email"
16
+
17
+ validate :validates_presence_of_address, :validates_presence_of_billing_info
18
+
19
+ def attributes
20
+ {
21
+ "code" => code,
22
+ "email" => email,
23
+ "fullname" => fullname,
24
+ "cpf" => cpf,
25
+ "phone_area_code" => phone_area_code,
26
+ "phone_number" => phone_number,
27
+ "birthdate_day" => birthdate_day,
28
+ "birthdate_month" => birthdate_month,
29
+ "birthdate_year" => birthdate_year,
30
+ "address" => address,
31
+ "billing_info" => billing_info
32
+ }
7
33
  end
8
34
 
9
- def create
10
- # todo: the create
35
+ def address= options = {}
36
+ @address = Moip::Address.build options
11
37
  end
12
38
 
13
- def find
14
- # todo: the find
39
+ def address
40
+ @address.serializable_hash.delete_if {|key, value| value.nil? }
15
41
  end
16
42
 
17
- def delete
18
- # todo: the delete
43
+ def billing_info= options
44
+ if options.is_a? Hash
45
+ @billing_info = Moip::BillingInfo.build options
46
+ elsif options.is_a? Moip::BillingInfo
47
+ @billing_info = Moip::BillingInfo
48
+ end
49
+ end
50
+
51
+ def billing_info
52
+ @billing_info.to_hash
53
+ end
54
+
55
+ def validates_presence_of_address
56
+ self.errors.add :address, "can't be blank" and return if @address.nil?
57
+
58
+ if @address.valid?
59
+ true
60
+ else
61
+ self.errors.add :adress, @address.errors.full_messages.first
62
+ end
63
+ end
64
+
65
+ def validates_presence_of_billing_info
66
+ self.errors.add :billing_info, "can't be blank" and return if @billing_info.nil?
67
+
68
+ if @billing_info.valid?
69
+ true
70
+ else
71
+ self.errors.add :adress, @billing_info.errors.full_messages.first
72
+ end
73
+ end
74
+
75
+ def costumers= hash
76
+ @costumers = []
77
+ hash.each do |e|
78
+ costumer = self.class.new
79
+ costumer.set_parameters e
80
+ @costumers << costumer
81
+ end
82
+ @costumers
83
+ end
84
+
85
+
86
+ def load
87
+ list = self.class.get(base_url(:customers), default_header).parsed_response
88
+ self.costumers = list["costumers"]
89
+ end
90
+
91
+ # metodo que envia as informações para a API do moip e cria um novo cliente
92
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#criar_cliente
93
+ def create
94
+ if self.valid?
95
+ self.class.post(base_url(:customers, :params => "new_vault=true"), default_header(self.to_json)).parsed_response
96
+ else
97
+ raise Exception.new "#{self.errors.first[0]} #{self.errors.first[1]}"
98
+ end
99
+ end
100
+
101
+ def find code
102
+ response = self.class.get(base_url(:customers, :code => code), default_header).parsed_response
103
+ self.set_parameters response unless response.nil?
19
104
  end
20
105
 
21
106
  end
@@ -1,21 +1,62 @@
1
- class Moip::Invoice
1
+ #encoding: utf-8
2
+ class Moip::Invoice < Moip::Model
2
3
  include HTTParty
3
4
  include Moip::Header
5
+
6
+ attr_accessor :id, :amount, :subscription_code, :occurrence,
7
+ :status, :items, :plan, :customer, :creation_date, :invoices
8
+
9
+ def attributes
10
+ {
11
+ "id" => id,
12
+ "amount" => amount,
13
+ "subscription_code" => subscription_code,
14
+ "occurrence" => occurrence,
15
+ "status" => status,
16
+ "items" => items,
17
+ "plan" => plan,
18
+ "customer" => customer,
19
+ "creation_date" => creation_date
20
+ }
21
+ end
4
22
 
5
- def list
6
- self.class.get(base_url(:invoices), default_header).parsed_response
23
+ def invoices= hash
24
+ @invoices = []
25
+ hash.each do |e|
26
+ invoice = self.class.new
27
+ invoice.set_parameters e
28
+ @invoices << invoice
29
+ end
30
+ @invoices
31
+ end
32
+
33
+ def full_status
34
+ status = case self.status
35
+ when 1 then "Em aberto" # A fatura foi gerada mas ainda não foi paga pelo assinante.
36
+ when 2 then "Aguardando Confirmação" # A fatura foi paga pelo assinante, mas o pagamento está em processo de análise de risco.
37
+ when 3 then "Pago" # A fatura foi paga pelo assinante e confirmada.
38
+ when 4 then "Não Pago" # O assinante tentou pagar a fatura, mas o pagamento foi negado pelo banco emissor do cartão de crédito ou a análise de risco detectou algum problema. Veja os motivos possíveis.
39
+ when 5 then "Atrasada" # O pagamento da fatura foi cancelado e serão feitas novas tentativas de cobrança de acordo com a configuração de retentativa automática.
40
+ end
41
+ status
42
+ end
43
+
44
+ def invoices
45
+ @invoices ||= self.invoices = self.load
7
46
  end
8
47
 
9
- def create
10
- # todo: the create
48
+ def load
49
+ list = self.class.get(base_url(:subscriptions, :code => self.subscription_code, :status => "invoices"), default_header).parsed_response
50
+ self.invoices = list["invoices"]
11
51
  end
12
52
 
13
53
  def find
14
- # todo: the find
54
+ response = self.class.get(base_url(:invoices, :code => self.code), default_header).parsed_response
55
+ self.set_parameters response unless response.nil?
15
56
  end
16
57
 
17
- def delete
18
- # todo: the delete
58
+ def payments
59
+
19
60
  end
20
61
 
21
62
  end
@@ -1,21 +1,47 @@
1
- class Moip::Payment
1
+ class Moip::Payment < Moip::Model
2
2
  include HTTParty
3
3
  include Moip::Header
4
4
 
5
- def list
6
- self.class.get(base_url(:payments), default_header).parsed_response
5
+ attr_accessor :id, :moip_id, :status, :subscription_code,
6
+ :customer_code, :invoice, :payment_method,
7
+ :creation_date
8
+
9
+ def attributes
10
+ {
11
+ "id": id,
12
+ "moip_id": moip_id,
13
+ "status": status,
14
+ "subscription_code": subscription_code,
15
+ "customer_code": customer_code,
16
+ "invoice": invoice,
17
+ "payment_method": payment_method,
18
+ "creation_date": creation_date
19
+ }
7
20
  end
8
21
 
9
- def create
10
- # todo: the create
22
+ def payments= hash
23
+ @payments = []
24
+ hash.each do |e|
25
+ payment = self.class.new
26
+ payment.set_parameters e
27
+ @payments << payment
28
+ end
29
+ @payments
11
30
  end
12
31
 
13
- def find
14
- # todo: the find
32
+ def payments
33
+ @payments ||= self.payments = self.load
34
+ end
35
+
36
+ def load
37
+ self.class.get(base_url(:invoices, :code => self.subscription_code, :status => "payments"), default_header).parsed_response
38
+ self.payments = list["payments"]
15
39
  end
16
40
 
17
- def delete
18
- # todo: the delete
41
+ def find
42
+ response = self.class.get(base_url(:invoices, :code => self.id), default_header).parsed_response
43
+ self.set_parameters response unless response.nil?
19
44
  end
45
+
20
46
 
21
47
  end
@@ -1,14 +1,14 @@
1
1
  # encoding: utf-8
2
- class Plan
2
+ class Moip::Plan < Moip::Model
3
3
  include HTTParty
4
4
  include Moip::Header
5
5
 
6
6
  # see http://moiplabs.github.io/assinaturas-docs/api.html#criar_plano
7
7
  attr_accessor :code, :name, :description, :amount,
8
8
  :setup_fee, :interval, :billing_cycles,
9
- :status, :max_qty
9
+ :status, :max_qty, :plans
10
10
 
11
- # validates :code, :name, :amount, :presence => true
11
+ validates :code, :name, :amount, :presence => true
12
12
 
13
13
  def attributes
14
14
  {
@@ -24,34 +24,82 @@ class Plan
24
24
  }
25
25
  end
26
26
 
27
- # metodo que cria o objeto plano
28
- def self.build_new params
29
- plan = Plan.new params
27
+ def interval= options = {}
28
+ @interval = {}
29
+ @interval.merge! :length => options[:length]
30
+ @interval.merge! :unit => options[:unit]
31
+ end
32
+
33
+ def interval
34
+ return nil if @interval.nil?
35
+
36
+ @interval.delete_if {|key, value| value.nil? }
37
+
38
+ if @interval.size > 0
39
+ @interval
40
+ else
41
+ nil
42
+ end
43
+ end
44
+
45
+ def plans= hash
46
+ @plans = []
47
+ hash.each do |e|
48
+ plan = self.class.new
49
+ plan.set_parameters e
50
+ @plans << plan
51
+ end
52
+ @plans
30
53
  end
31
54
 
32
55
  # see http://moiplabs.github.io/assinaturas-docs/api.html#listar_plano
33
- def list
34
- self.class.get(base_url(:plans), default_header).parsed_response
56
+ def load
57
+ list = self.class.get(base_url(:plans), default_header).parsed_response
58
+ self.plans = list["plans"]
35
59
  end
36
60
 
37
61
  # metodo que envia as informações para a API do moip e cria um novo plano
38
62
  # see http://moiplabs.github.io/assinaturas-docs/api.html#criar_plano
39
- def create params
40
- # todo: the create
63
+ def create
64
+ if self.valid?
65
+ self.class.post(base_url(:plans), default_header(self.to_json)).parsed_response
66
+ else
67
+ raise Exception.new "#{self.errors.first[0]} #{self.errors.first[1]}"
68
+ end
41
69
  end
42
70
 
43
- def find
44
- # todo: the find
71
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#consultar_plano
72
+ def find code
73
+ response = self.class.get(base_url(:plans, :code => code), default_header).parsed_response
74
+ self.set_parameters response unless response.nil?
45
75
  end
46
76
 
47
- def delete
48
- # todo: the delete
77
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#alterar_plano
78
+ def update
79
+ if self.valid?
80
+ self.class.put(base_url(:plans, :code => self.code), default_header(self)).parsed_response
81
+ true
82
+ else
83
+ raise Exception.new "#{self.errors.first[0]} #{self.errors.first[1]}"
84
+ end
49
85
  end
50
86
 
51
- def interval= options = {}
52
- @interval = {}
53
- @interval.merge! :length => options[:length]
54
- @interval.merge! :unit => options[:unit]
87
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#ativar_desativar_plano
88
+ def activate
89
+ if self.status != "activate"
90
+ self.status = "activate"
91
+ self.class.put(base_url(:plans, :code => self.code, :status => "activate"), default_header).parsed_response
92
+ true
93
+ end
94
+ end
95
+
96
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#ativar_desativar_plano
97
+ def inactivate
98
+ if self.status != "inactivate"
99
+ self.status = "inactivate"
100
+ self.class.put(base_url(:plans, :code => self.code, :status => "inactivate"), default_header).parsed_response
101
+ true
102
+ end
55
103
  end
56
104
 
57
105
  end
@@ -1,21 +1,131 @@
1
- class Moip::Subscription
1
+ # encoding: utf-8
2
+ class Moip::Subscription < Moip::Model
2
3
  include HTTParty
3
4
  include Moip::Header
4
-
5
- def list
6
- self.class.get(base_url(:subscriptions), default_header).parsed_response
5
+
6
+ attr_accessor :code, :amount, :plan, :customer,
7
+ :next_invoice_date, :status, :message,
8
+ :errors, :alerts, :invoice, :creation_date,
9
+ :expiration_date, :subscriptions
10
+
11
+ validates :code, :amount, :plan, :customer, :presence => true
12
+
13
+ def attributes
14
+ {
15
+ "code" => code,
16
+ "amount" => amount,
17
+ "plan" => plan,
18
+ "customer" => customer
19
+ }
20
+ end
21
+
22
+ def plan
23
+ if @plan.is_a? Hash
24
+ @plan
25
+ else
26
+ { :code => @plan }
27
+ end
28
+ end
29
+
30
+ def customer
31
+ if @customer.is_a? Hash
32
+ @customer
33
+ else
34
+ { :code => @customer }
35
+ end
36
+ end
37
+
38
+ def subscriptions= hash
39
+ @subscriptions = []
40
+ hash.each do |e|
41
+ subscription = self.class.new
42
+ subscription.set_parameters e
43
+ @subscriptions << subscription
44
+ end
45
+ @subscriptions
7
46
  end
8
47
 
48
+ def subscriptions
49
+ @subscriptions
50
+ end
51
+
52
+ def invoices
53
+ @invoices ||= Moip::Invoice.build(:subscription_code => self.code).invoices
54
+ end
55
+
56
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#listar_assinaturas
57
+ def load
58
+ list = self.class.get(base_url(:subscriptions), default_header).parsed_response
59
+ self.subscriptions = list["subscriptions"]
60
+ end
61
+
62
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#criar_assinatura
9
63
  def create
10
- # todo: the create
64
+ self.class.post(base_url(:subscriptions), default_header(self.to_json)).parsed_response
65
+ end
66
+
67
+ # To Do
68
+ def create_with_costumer
69
+ # To Do: will not be developed this feature right now, if you
70
+ # want to fork and develop this feature, be welcome.
11
71
  end
12
72
 
13
- def find
14
- # todo: the find
73
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#consultar_assinatura
74
+ def find code
75
+ response = self.class.get(base_url(:subscriptions, :code => code), default_header).parsed_response
76
+ self.set_parameters response unless response.nil?
15
77
  end
16
78
 
17
- def delete
18
- # todo: the delete
79
+ def suspend
80
+ if self.status != "suspend"
81
+ self.status = "suspend"
82
+ self.class.put(base_url(:subscriptions, :code => self.code, :status => "suspend"), default_header).parsed_response
83
+ true
84
+ end
19
85
  end
86
+
87
+ def activate
88
+ if self.status != "activate"
89
+ self.status = "activate"
90
+ self.class.put(base_url(:subscriptions, :code => self.code, :status => "activate"), default_header).parsed_response
91
+ true
92
+ end
93
+ end
94
+
95
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#alterar_assinatura
96
+ def update_plan new_plan
97
+ hash = {}
98
+ hash[:plan] = { :code => new_plan }
99
+
100
+ self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
101
+ end
102
+
103
+ # see http://moiplabs.github.io/assinaturas-docs/api.html#alterar_assinatura
104
+ def update_next_invoice plan, next_invoice_date
105
+ hash = {}
106
+ hash[:plan] = { :code => plan }
107
+ hash[:next_invoice_date] = next_invoice_date
108
+
109
+ self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
110
+ end
111
+
112
+ def update_amount plan, new_amount
113
+ hash = {}
114
+
115
+ self.find self.code
116
+
117
+ hash[:plan] = { :code => plan }
118
+ hash[:amount] = new_amount
119
+
120
+ self.class.put(base_url(:subscriptions, :code => self.code), default_header(hash.to_json)).parsed_response
121
+ end
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
20
130
 
21
131
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-moip-assinaturas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douglas Rossignolli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-05 00:00:00.000000000 Z
11
+ date: 2013-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -79,6 +79,8 @@ files:
79
79
  - lib/moip/configuration.rb
80
80
  - lib/moip/header.rb
81
81
  - lib/moip/model.rb
82
+ - lib/moip/models/address.rb
83
+ - lib/moip/models/billing_info.rb
82
84
  - lib/moip/models/costumer.rb
83
85
  - lib/moip/models/invoice.rb
84
86
  - lib/moip/models/payment.rb