celery_api 0.0.4 → 0.0.5

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: dcabeac6011089d292d5623b4aed00d90ff23f14
4
- data.tar.gz: 540922b7fd07d0225b8f8fc49b702cf4899f8a9d
3
+ metadata.gz: b993b4bbeabfb0ea78df6e5f172d6b201b3672bf
4
+ data.tar.gz: 69a75b093c226864dce5a23c0abfb57a9cd3a343
5
5
  SHA512:
6
- metadata.gz: 17ca244bd2df8207a59166193412ed1fd5051a9a65b7653dcd62c4869e7194811cea662d6561fd62b32f4fa9348d0a31abc7cde3470fb056ae85ba21ec61d9a7
7
- data.tar.gz: a4085d41cbc3ab2f1d64b966e09a147937399ac7ebe4cfff69cd459f1c675b1e77c66bd7d1f9f4a2db8b7a86137b6ac073f980407f23d4261e47036b2fcc86d5
6
+ metadata.gz: 7f6a1556332b0d854ef9d77b9d0eee7d3c538197bf8bf689a7503bd87dcb13a1e3eec50d62a3e26d51dd0e346388b9cc1e835eaf8690ab68ffc4d682908a9422
7
+ data.tar.gz: a527b8fa9049885d67dc2087147abce34cbe14b5ac810b8eb35a300813a7fec0ec4297b6eaf6faba2571e35fcf5c05414485cb1040b0d6b4bbe19a2a357bc674
@@ -0,0 +1,18 @@
1
+ module Celery
2
+
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
+
10
+ return build_collection(response[endpoint_resource])
11
+ end
12
+
13
+ def build_collection(collection)
14
+ collection.map { |item| self.new(item) }
15
+ end
16
+ end
17
+
18
+ end
data/lib/celery/order.rb CHANGED
@@ -1,6 +1,11 @@
1
1
  module Celery
2
2
 
3
3
  class Order < Base
4
+
5
+ ENDPOINT_RESOURCE = "orders"
6
+
7
+ extend Celery::EndpointMethods
8
+
4
9
  attr_accessor :id, :status, :name, :image, :slug,
5
10
  :auto_charge, :seller, :buyer, :payment, :products,
6
11
  :coupon, :subtotal, :total, :deposit, :balance, :discount,
@@ -30,6 +35,13 @@ module Celery
30
35
  def card=(card)
31
36
  @card = Celery::Card.new(card)
32
37
  end
38
+
39
+ class << self
40
+ def decode(encoded_string)
41
+ decoded_string = Base64.decode64(encoded_string)
42
+ Celery::Order.new(JSON.parse(decoded_string))
43
+ end
44
+ end
33
45
  end
34
46
 
35
47
  end
@@ -1,6 +1,11 @@
1
1
  module Celery
2
2
 
3
3
  class Product < Base
4
+
5
+ ENDPOINT_RESOURCE = "products"
6
+
7
+ extend Celery::EndpointMethods
8
+
4
9
  attr_accessor :id, :_id, :user_id, :slug, :name,
5
10
  :image, :price, :deposit, :shipping,
6
11
  :quantity, :campaign, :options, :extras, :analytics,
data/lib/celery/user.rb CHANGED
@@ -9,6 +9,33 @@ module Celery
9
9
  :subscription, :business, :has_affirm, :message_to_buyer, :access_token,
10
10
  :emails, :has_paypalx
11
11
 
12
+ def update(attrs={})
13
+ update_local_object(attrs)
14
+ response = perform_request(attrs)
15
+ return true if response['meta']['code'] == 200
16
+ end
17
+
18
+ def perform_request(attrs)
19
+ HTTParty.put(
20
+ Celery.endpoint + "users/me?" + Celery.parameterize_options,
21
+ body: attrs.to_json,
22
+ headers: { 'Content-Type' => 'application/json' }
23
+ )
24
+ end
25
+
26
+ def update_local_object(attrs)
27
+ attrs.each { |key, value| self.send("#{key}=", value) }
28
+ end
29
+
30
+ class << self
31
+ def me
32
+ query_string = Celery.endpoint + "users/me?"
33
+ query_string += Celery.parameterize_options
34
+ response = HTTParty.get(query_string)
35
+
36
+ self.new(response['data'])
37
+ end
38
+ end
12
39
  end
13
40
 
14
41
  end
@@ -1,3 +1,3 @@
1
1
  module Celery
2
- VERSION = "0.0.4".freeze
2
+ VERSION = "0.0.5".freeze
3
3
  end
data/lib/celery.rb CHANGED
@@ -10,11 +10,10 @@ module Celery
10
10
  autoload :Card, "celery/card"
11
11
  autoload :Buyer, "celery/buyer"
12
12
  autoload :Order, "celery/order"
13
- autoload :Orders, "celery/orders"
14
13
  autoload :Seller, "celery/seller"
15
14
  autoload :Address, "celery/address"
16
15
  autoload :Billing, "celery/billing"
17
16
  autoload :Product, "celery/product"
18
- autoload :Products, "celery/products"
19
17
  autoload :Tracking, "celery/tracking"
18
+ autoload :EndpointMethods, "celery/endpoint_methods"
20
19
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Celery::Base do
4
- Celery::Base.class_eval do
4
+ class Foo < Celery::Base
5
5
  attr_accessor :foo
6
6
  end
7
7
 
8
8
  it 'calls the accessor' do
9
- expect_any_instance_of(Celery::Base).to receive(:foo=)
10
- Celery::Base.new(foo: 'foo')
9
+ expect_any_instance_of(Foo).to receive(:foo=)
10
+ Foo.new(foo: 'foo')
11
11
  end
12
12
  end
@@ -1,6 +1,26 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Celery::Order do
3
+ describe Celery::Order, 'class methods' do
4
+ it 'returns all the orders from the endpoint' do
5
+ orders = Celery::Order.all
6
+ expect(orders).to be_kind_of Array
7
+ expect(orders.first).to be_kind_of Celery::Order
8
+ end
9
+
10
+ it 'builds the orders based on the array' do
11
+ orders = [{ "id" => "1234" }]
12
+ orders = Celery::Order.build_collection(orders)
13
+ expect(orders.first).to be_kind_of Celery::Order
14
+ expect(orders.first.id).to eq("1234")
15
+ end
16
+
17
+ it 'decodes the order' do
18
+ order = Celery::Order.decode(celery_encoded_order)
19
+ expect(order.id).to eq(celery_decoded_order.id)
20
+ end
21
+ end
22
+
23
+ describe Celery::Order, 'instance methods' do
4
24
  let!(:order) { celery_decoded_order }
5
25
 
6
26
  it 'returns an instance of the celery product' do
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Celery::Product do
4
+ it 'returns all the products from the endpoint' do
5
+ products = Celery::Product.all
6
+ expect(products).to be_kind_of Array
7
+ expect(products.first).to be_kind_of Celery::Product
8
+ end
9
+
10
+ it 'builds the products based on the array' do
11
+ products = [{ "id" => "1234" }]
12
+ products = Celery::Product.build_collection(products)
13
+ expect(products.first).to be_kind_of Celery::Product
14
+ expect(products.first.id).to eq("1234")
15
+ end
16
+ end
@@ -1,10 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Celery::User do
3
+ describe Celery::User, 'class methods' do
4
+ it 'gets the user' do
5
+ expect(Celery::User.me).to be_kind_of Celery::User
6
+ end
7
+ end
8
+
9
+ describe Celery::User, 'instance methods' do
4
10
  let!(:attrs) { { "email" => Faker::Internet.email, "name" => Faker::Name.name } }
5
- let!(:user) { Celery::User.new(attrs) }
11
+ let!(:user) { Celery::User.me }
6
12
 
7
13
  it 'creates a new instance of user' do
8
14
  expect(user).to be_kind_of Celery::User
9
15
  end
16
+
17
+ context 'Update' do
18
+ it 'performs the action' do
19
+ expect(user.update(name: 'Antonio')).to eq(true)
20
+ expect(user.name).to eq('Antonio')
21
+ end
22
+
23
+ it "does not perform the action if there's no product present" do
24
+ expect{
25
+ user.update(foo: 'foo')
26
+ }.to raise_error NoMethodError
27
+ end
28
+ end
10
29
  end
@@ -4,6 +4,6 @@ module CeleryOrderHelper
4
4
  end
5
5
 
6
6
  def celery_decoded_order
7
- @decoded_order ||= Celery::Orders.decode_order(celery_encoded_order)
7
+ @decoded_order ||= Celery::Order.decode(celery_encoded_order)
8
8
  end
9
9
  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.4
4
+ version: 0.0.5
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-16 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -178,10 +178,9 @@ files:
178
178
  - lib/celery/buyer.rb
179
179
  - lib/celery/card.rb
180
180
  - lib/celery/config.rb
181
+ - lib/celery/endpoint_methods.rb
181
182
  - lib/celery/order.rb
182
- - lib/celery/orders.rb
183
183
  - lib/celery/product.rb
184
- - lib/celery/products.rb
185
184
  - lib/celery/seller.rb
186
185
  - lib/celery/tracking.rb
187
186
  - lib/celery/user.rb
@@ -190,13 +189,13 @@ files:
190
189
  - spec/celery/base_spec.rb
191
190
  - spec/celery/buyer_spec.rb
192
191
  - spec/celery/order_spec.rb
193
- - spec/celery/orders_spec.rb
192
+ - spec/celery/product_spec.rb
194
193
  - spec/celery/user_spec.rb
195
194
  - spec/celery_spec.rb
196
195
  - spec/spec_helper.rb
197
196
  - spec/support/celery_order_helper.rb
198
197
  - spec/support/fixtures/celery_encoded_order.txt
199
- homepage: https://github.com/TheNaoX/celery_api
198
+ homepage: https://github.com/tangosource/celery_api
200
199
  licenses:
201
200
  - MIT
202
201
  metadata: {}
@@ -224,7 +223,7 @@ test_files:
224
223
  - spec/celery/base_spec.rb
225
224
  - spec/celery/buyer_spec.rb
226
225
  - spec/celery/order_spec.rb
227
- - spec/celery/orders_spec.rb
226
+ - spec/celery/product_spec.rb
228
227
  - spec/celery/user_spec.rb
229
228
  - spec/celery_spec.rb
230
229
  - spec/spec_helper.rb
data/lib/celery/orders.rb DELETED
@@ -1,27 +0,0 @@
1
- module Celery
2
-
3
- class Orders < Base
4
-
5
- class << self
6
- def all(args={})
7
- endpoint_path = Celery.endpoint + "orders"
8
- options = Celery.parameterize_options(args)
9
- response = HTTParty.get("#{endpoint_path}?#{options}")
10
- return build_orders(response['orders'])
11
- end
12
-
13
- def build_orders(orders)
14
- orders.map do |order|
15
- Celery::Order.new(order)
16
- end
17
- end
18
-
19
- def decode_order(encoded_string)
20
- decoded_string = Base64.decode64(encoded_string)
21
- Celery::Order.new(JSON.parse(decoded_string))
22
- end
23
- end
24
-
25
- end
26
-
27
- end
@@ -1,18 +0,0 @@
1
- module Celery
2
-
3
- class Products < Base
4
- class << self
5
- def all(args={})
6
- endpoint_path = Celery.endpoint + "products"
7
- options = Celery.parameterize_options(args)
8
- response = HTTParty.get("#{endpoint_path}?#{options}")
9
- return build_products(response['products'])
10
- end
11
-
12
- def build_products(products)
13
- products.map { |product| Celery::Product.new(product) }
14
- end
15
- end
16
- end
17
-
18
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Celery::Orders do
4
- it 'returns all the orders from the endpoint' do
5
- orders = Celery::Orders.all
6
- expect(orders).to be_kind_of Array
7
- expect(orders.first).to be_kind_of Celery::Order
8
- end
9
-
10
- it 'builds the orders based on the array' do
11
- orders = [{ "id" => "1234" }]
12
- orders = Celery::Orders.build_orders(orders)
13
- expect(orders.first).to be_kind_of Celery::Order
14
- expect(orders.first.id).to eq("1234")
15
- end
16
-
17
- it 'decodes the order' do
18
- order = Celery::Orders.decode_order(celery_encoded_order)
19
- expect(order.id).to eq(celery_decoded_order.id)
20
- end
21
- end