celery_api 0.0.6 → 0.0.7

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
  SHA1:
3
- metadata.gz: d34969976d629b41ad78a80ad06084c68070d30d
4
- data.tar.gz: 2f8b4335c27114f6dfdb5a6f40b7f49066207183
3
+ metadata.gz: 3240ca40d270eb325b22c8e1f70afa29f49d7254
4
+ data.tar.gz: 5e78996762c09a83b1d942fbe0e6192c2e84b2e3
5
5
  SHA512:
6
- metadata.gz: 4f9f2a6cf4dcf2368fa78e54774a7e7eb2d90358ea3a32dc95e58dc755ed03291ddb1bf6a37606c1a7fbc2aa35440911cc9c237134044f48291dbd83b1405554
7
- data.tar.gz: 6de6aa55f33c0185a43029c4d7c366ee01c11b39fce2a2d13ae44703ba0a1a990d67c7fc19744d0f3a740dc31247404dde87e0766893accd16c8d697957cad58
6
+ metadata.gz: f99fe013daf03d3b7ce274c7805056bad286ddade05e0f14a5180a99f3f139d922390ea1e8296735545786b9294013ab7d9b0dbe3f9d88ba8e4a7f5baa0d58d4
7
+ data.tar.gz: 022a2e9d9a2191bb65e7cff5eb5ccb04d17f84ef15a1515a80eec651ef8bf6867b1a66ff2a8765f2ff94fae9087055e6cad3cf511616cb95516a6640204f3147
@@ -1,35 +1,71 @@
1
1
  module Celery
2
2
 
3
3
  module EndpointMethods
4
- def all(args={})
5
- endpoint_resource = self::ENDPOINT_RESOURCE
6
- endpoint_path = Celery.endpoint + endpoint_resource
7
- options = Celery.parameterize_options(args)
8
- response = HTTParty.get("#{endpoint_path}?#{options}")
9
4
 
10
- return build_collection(response[endpoint_resource])
11
- end
5
+ module ClassMethods
6
+ def all(args={})
7
+ response = HTTParty.get("#{endpoint_path}?#{options}")
8
+ return build_collection(response[endpoint_resource])
9
+ end
12
10
 
13
- def build_collection(collection)
14
- collection.map { |item| self.new(item) }
15
- end
11
+ def build_collection(collection)
12
+ collection.map { |item| self.new(item) }
13
+ end
14
+
15
+ def get(id)
16
+ response = HTTParty.get("#{endpoint_path}/#{id}?#{options}")
17
+ self.new(response[self::ENDPOINT_RESOURCE_SINGULAR])
18
+ end
19
+
20
+ def create(attrs={})
21
+ response = HTTParty.post(
22
+ "#{endpoint_path}?#{options}",
23
+ body: { object_root => attrs }.to_json,
24
+ headers: { 'Content-Type' => 'application/json' }
25
+ )
26
+
27
+ self.new(response[self::ENDPOINT_RESOURCE_SINGULAR])
28
+ end
16
29
 
17
- def get(id)
18
- endpoint_resource = self::ENDPOINT_RESOURCE
19
- endpoint_path = Celery.endpoint + endpoint_resource + "/" + id
20
- options = Celery.parameterize_options
21
- response = HTTParty.get("#{endpoint_path}?#{options}")
30
+ def endpoint_path
31
+ Celery.endpoint + endpoint_resource
32
+ end
22
33
 
23
- self.new(response[self::ENDPOINT_RESOURCE_SINGULAR])
34
+ def endpoint_resource
35
+ self::ENDPOINT_RESOURCE
36
+ end
37
+
38
+ def object_root
39
+ self::ENDPOINT_RESOURCE_SINGULAR
40
+ end
41
+
42
+ def options(args={})
43
+ Celery.parameterize_options(args)
44
+ end
24
45
  end
25
46
 
26
- def create(attrs={})
27
- endpoint_resource = self::ENDPOINT_RESOURCE
28
- endpoint_path = Celery.endpoint + endpoint_resource
29
- options = Celery.parameterize_options
30
- response = HTTParty.post("#{endpoint_path}?#{options}", body: { product: attrs }.to_json, headers: { 'Content-Type' => 'application/json' })
47
+ module InstanceMethods
48
+ def update(attrs={})
49
+ update_local_object(attrs)
50
+
51
+ response = HTTParty.put(
52
+ "#{self.class.endpoint_path}/#{self.id}?#{self.class.options}",
53
+ body: { self.class.object_root => attrs }.to_json,
54
+ headers: { 'Content-Type' => 'application/json' }
55
+ )
56
+
57
+ return true if response[self.class.object_root]
58
+ end
59
+
60
+ def destroy
61
+ response = HTTParty.delete("#{self.class.endpoint_path}/#{self.id}?#{self.class.options}")
62
+ return response['status']
63
+ end
31
64
 
32
- self.new(response[self::ENDPOINT_RESOURCE_SINGULAR])
65
+ private
66
+ def update_local_object(attrs)
67
+ attrs.each { |key, value| self.send("#{key}=", value) }
68
+ end
33
69
  end
34
70
  end
35
71
 
data/lib/celery/order.rb CHANGED
@@ -2,9 +2,11 @@ module Celery
2
2
 
3
3
  class Order < Base
4
4
 
5
- ENDPOINT_RESOURCE = "orders"
5
+ ENDPOINT_RESOURCE = "orders"
6
+ ENDPOINT_RESOURCE_SINGULAR = "order"
6
7
 
7
- extend Celery::EndpointMethods
8
+ extend Celery::EndpointMethods::ClassMethods
9
+ include Celery::EndpointMethods::InstanceMethods
8
10
 
9
11
  attr_accessor :id, :status, :name, :image, :slug,
10
12
  :auto_charge, :seller, :buyer, :payment, :products,
@@ -36,6 +38,20 @@ module Celery
36
38
  @card = Celery::Card.new(card)
37
39
  end
38
40
 
41
+ def cancel
42
+ response = HTTParty.get(
43
+ "#{self.class.endpoint_path}/#{self.id}/cancel?#{self.class.options}"
44
+ )
45
+ return true if response[self.class.object_root]
46
+ end
47
+
48
+ def charge_deposit
49
+ response = HTTParty.post(
50
+ "#{self.class.endpoint_path}/#{self.id}/charge_deposit?#{self.class.options}"
51
+ )
52
+ return true if response[self.class.object_root]
53
+ end
54
+
39
55
  class << self
40
56
  def decode(encoded_string)
41
57
  decoded_string = Base64.decode64(encoded_string)
@@ -5,7 +5,8 @@ module Celery
5
5
  ENDPOINT_RESOURCE = "products"
6
6
  ENDPOINT_RESOURCE_SINGULAR = "product"
7
7
 
8
- extend Celery::EndpointMethods
8
+ extend Celery::EndpointMethods::ClassMethods
9
+ include Celery::EndpointMethods::InstanceMethods
9
10
 
10
11
  attr_accessor :id, :_id, :user_id, :slug, :name,
11
12
  :image, :price, :deposit, :shipping,
@@ -18,26 +19,6 @@ module Celery
18
19
  @_id = id
19
20
  @id = id
20
21
  end
21
-
22
- def update(attrs={})
23
- update_local_object(attrs)
24
- endpoint_path = Celery.endpoint + "products" + "/" + self.id
25
- options = Celery.parameterize_options
26
- response = HTTParty.put("#{endpoint_path}?#{options}", body: { product: attrs }.to_json, headers: { 'Content-Type' => 'application/json' })
27
-
28
- return true if response['product']
29
- end
30
-
31
- def update_local_object(attrs)
32
- attrs.each { |key, value| self.send("#{key}=", value) }
33
- end
34
-
35
- def destroy
36
- endpoint_path = Celery.endpoint + "products" + "/" + self.id
37
- options = Celery.parameterize_options
38
- response = HTTParty.delete("#{endpoint_path}?#{options}")
39
- return response['status']
40
- end
41
22
  end
42
23
 
43
24
  end
data/lib/celery/user.rb CHANGED
@@ -7,12 +7,13 @@ module Celery
7
7
  :shipping_rates, :tax_rates, :nexus, :stripe, :affirm, :paypal_email,
8
8
  :analytics, :flags, :confirmation_url, :twitter, :facebook, :website,
9
9
  :subscription, :business, :has_affirm, :message_to_buyer, :access_token,
10
- :emails, :has_paypalx
10
+ :emails, :has_paypalx, :confirmation_scripts
11
11
 
12
12
  def update(attrs={})
13
13
  update_local_object(attrs)
14
14
  response = perform_request(attrs)
15
- return true if response['meta']['code'] == 200
15
+
16
+ return response['meta']['code'] == 200 ? true : false
16
17
  end
17
18
 
18
19
  def perform_request(attrs)
@@ -1,3 +1,3 @@
1
1
  module Celery
2
- VERSION = "0.0.6".freeze
2
+ VERSION = "0.0.7".freeze
3
3
  end
@@ -18,29 +18,122 @@ describe Celery::Order, 'class methods' do
18
18
  order = Celery::Order.decode(celery_encoded_order)
19
19
  expect(order.id).to eq(celery_decoded_order.id)
20
20
  end
21
+
22
+ describe '.get' do
23
+ let!(:attrs) do
24
+ {
25
+ seller_id: "5388e71c5d519405004e3c3c",
26
+ buyer: {
27
+ "email" => Faker::Internet.email,
28
+ "name"=> Faker::Name.name,
29
+ "address"=> {
30
+ "company_name"=>"",
31
+ "street"=>"asdfasdf",
32
+ "street2"=>"",
33
+ "city"=>"asdfasfa",
34
+ "state"=>"asdfasdf",
35
+ "zip"=>"1231234",
36
+ "country"=>"MX",
37
+ "phone"=>""
38
+ },
39
+ },
40
+ products: [ { "slug"=>"choco-cake", "name"=>"Chocholate cake", "quantity"=>1 } ]
41
+ }
42
+ end
43
+
44
+ let!(:order) { Celery::Order.create(attrs) }
45
+
46
+ it 'returns an order from celery' do
47
+ order_from_celery = Celery::Order.get(order.id)
48
+
49
+ expect(order_from_celery).to be_kind_of Celery::Order
50
+ expect(order_from_celery.id).to eq(order.id)
51
+ end
52
+ end
53
+
54
+ describe '.create' do
55
+ let!(:attrs) do
56
+ {
57
+ seller_id: "5388e71c5d519405004e3c3c",
58
+ buyer: {
59
+ "email" => Faker::Internet.email,
60
+ "name"=> Faker::Name.name,
61
+ "address"=> {
62
+ "company_name"=>"",
63
+ "street"=>"asdfasdf",
64
+ "street2"=>"",
65
+ "city"=>"asdfasfa",
66
+ "state"=>"asdfasdf",
67
+ "zip"=>"1231234",
68
+ "country"=>"MX",
69
+ "phone"=>""
70
+ },
71
+ },
72
+ products: [ { "slug"=>"choco-cake", "name"=>"Chocholate cake", "quantity"=>1 } ]
73
+ }
74
+ end
75
+
76
+ it 'creates the order' do
77
+ order = Celery::Order.create(attrs)
78
+ expect(order).to be_kind_of Celery::Order
79
+ end
80
+ end
81
+
21
82
  end
22
83
 
23
84
  describe Celery::Order, 'instance methods' do
24
- let!(:order) { celery_decoded_order }
25
-
26
- it 'returns an instance of the celery product' do
27
- expect(order.products).to be_kind_of Array
28
- expect(order.products.first).to be_kind_of Celery::Product
85
+ let!(:attrs) do
86
+ {
87
+ seller_id: "5388e71c5d519405004e3c3c",
88
+ buyer: {
89
+ "email" => Faker::Internet.email,
90
+ "name"=> Faker::Name.name,
91
+ "address"=> {
92
+ "company_name"=>"",
93
+ "street"=>"asdfasdf",
94
+ "street2"=>"",
95
+ "city"=>"asdfasfa",
96
+ "state"=>"asdfasdf",
97
+ "zip"=>"1231234",
98
+ "country"=>"MX",
99
+ "phone"=>""
100
+ },
101
+ },
102
+ products: [ { "slug"=>"choco-cake", "name"=>"Chocholate cake", "quantity"=>1 } ]
103
+ }
29
104
  end
30
105
 
31
- it 'returns an instance of the celery buyer' do
32
- expect(order.buyer).to be_kind_of Celery::Buyer
106
+ let!(:order) { Celery::Order.create(attrs) }
107
+
108
+ it { expect(order.products.first).to be_kind_of Celery::Product }
109
+ it { expect(order.buyer).to be_kind_of Celery::Buyer }
110
+ it { expect(order.seller).to be_kind_of Celery::Seller }
111
+ it { expect(order.tracking).to be_kind_of Celery::Tracking }
112
+ it { expect(order.card).to be_kind_of Celery::Card }
113
+
114
+ describe '#update' do
115
+ it 'updates the order' do
116
+ expect(order.update(buyer: { name: Faker::Name.name })).to eq(true)
117
+ new_order = Celery::Order.get(order.id)
118
+ expect(new_order.name).to eq(order.name)
119
+ end
33
120
  end
34
121
 
35
- it 'returns an instance of the celery seller' do
36
- expect(order.seller).to be_kind_of Celery::Seller
122
+ describe '#destroy' do
123
+ it 'destroys the order' do
124
+ expect(order.destroy).to eq(true)
125
+
126
+ expect { Celery::Order.get(order.id) }.to raise_error
127
+ end
37
128
  end
38
129
 
39
- it 'returns an instance of the celery tracking' do
40
- expect(order.tracking).to be_kind_of Celery::Tracking
130
+ describe '#cancel' do
131
+ it 'cancels the order' do
132
+ expect(order.cancel).to eq(true)
133
+ end
41
134
  end
42
135
 
43
- it 'returns an instance of the celery card' do
44
- expect(order.card).to be_kind_of Celery::Card
136
+ describe "#charge_deposit" do
137
+ it 'charges the order\'s deposit'
45
138
  end
46
139
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celery_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antonio Chavez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -220,12 +220,12 @@ signing_key:
220
220
  specification_version: 4
221
221
  summary: Celery API wrapper
222
222
  test_files:
223
- - spec/celery/base_spec.rb
224
- - spec/celery/buyer_spec.rb
225
- - spec/celery/order_spec.rb
226
- - spec/celery/product_spec.rb
227
- - spec/celery/user_spec.rb
228
- - spec/celery_spec.rb
229
223
  - spec/spec_helper.rb
230
- - spec/support/celery_order_helper.rb
224
+ - spec/celery_spec.rb
231
225
  - spec/support/fixtures/celery_encoded_order.txt
226
+ - spec/support/celery_order_helper.rb
227
+ - spec/celery/user_spec.rb
228
+ - spec/celery/buyer_spec.rb
229
+ - spec/celery/base_spec.rb
230
+ - spec/celery/product_spec.rb
231
+ - spec/celery/order_spec.rb