envato-sdk 0.1.0 → 0.2.0

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: 161e6a8f05ab1d5cd4085bbfa404d043fcc468d5
4
- data.tar.gz: 3f24c8df1c6018e93c3ba47716cdfe279505d94b
3
+ metadata.gz: eba7d159266289022ad43fd312e12054c515b072
4
+ data.tar.gz: f49b48c5cbbbd4b59b7e73cc124780546535ed2f
5
5
  SHA512:
6
- metadata.gz: e2ad00c1d5d6d43e930afbde208ecd46027c67966666810aab9c635f65941d87e010db71636e80cf97fa25646eccaf8cf5e64226b4fe67f9cea3727b7d2de970
7
- data.tar.gz: 01a0f5e0fe558024a1886b3d4aa7c2a52ba92265e1a39ed02bae3de5fef4b8c8514771562dc1fe23b7dac3476f435af45d258ab700ae615bca2799671762184e
6
+ metadata.gz: b996f5d9ecf3e928b0f0da231f3b7efcd3ac971c42a0549863ac0925bb1510e8b9cd780bbe69f7ef57ee7553a43b405dcdb00291fcfec39f9191ff07bb64e1ae
7
+ data.tar.gz: e0731686315465fb4bed7a1837575fb5ca3cbc18251c4001eda983c546efc770dc12eb18ca3489d41c083b163c70b093494bd75caa7cc8d05da3865851a8004c
data/README.md CHANGED
@@ -36,6 +36,57 @@ that you have already created a client called `client` as seen in the above
36
36
  example. `...` represents multiple of the previous item repeated such as a hash
37
37
  or array item.
38
38
 
39
+ #### Catalog
40
+
41
+ - [`get_public_collection`](https://build.envato.com/api/#market_0_Catalog_Collection)
42
+
43
+ ```rb
44
+ client.get_public_collection(5507368)
45
+ # => {"id"=>5507368, "name"=>"Test public collection", "description"=>"This is an example public collection", "private"=>false, "item_count"=>1, "image"=>"default-collection.png"}
46
+ ```
47
+
48
+ - [`get_item`](https://build.envato.com/api/#market_0_Catalog_Item)
49
+
50
+ ```rb
51
+ client.get_item(14157442)
52
+ # => {"id"=>14157442, "name"=>"Beautiful Watercolor - Hand Painted Creative WordPress", "description"=>"<p><img src=\"http://dtbaker.net/wp-content/uploads/sites ...
53
+ ```
54
+
55
+ - [`popular_items_by_site`](https://build.envato.com/api/#market_Popular)
56
+
57
+ ```rb
58
+ client.popular_items_by_site('themeforest')
59
+ # => {"items_last_week"=>[{"id"=>"2833226", "item"=>"Avada | Responsive Multi-Purpose Theme", "url"=>"http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226", "user"=>"ThemeFusion", "thumbnail"=>"https://0.s3.envato.com/files/169508862/Thumbnail.jpg", "sales"=>"1939", "rating"=>"5.0", "rating_decimal"=>"4.78", "cost"=>"59.00", "uploaded_on"=>"Thu Aug 16 01:28:46 +1000 2012", "last_update"=>"Thu Jan 28 12:13:49 +1100 2016", "tags"=>"blog, business, clean, corporate, creative, ecommerce, modern, multipurpose, one page, photography, portfolio, responsive, retina, woocommerce, wordpress", "category"=>"wordpress/corporate", "live_preview_url"=>"https://0.s3.envato.com/files/169508866/screenshots/00_preview.__large_preview.jpg"}, {"id"=>"5871901", "item"=>"X | The Theme", ...
60
+ ```
61
+
62
+ - [`categories_by_site`](https://build.envato.com/api/#market_Categories)
63
+
64
+ ```rb
65
+ client.categories_by_site('themeforest')
66
+ # => [{"name"=>"Site Templates", "path"=>"site-templates"}, {"name"=>"Creative", "path"=>"site-templates/creative"}, {"name"=>"Portfolio", "path"=>"site-templates/creative/portfolio"}, {"name"=>"Photography", "path"=>"site-templates/creative/photography"}, {"name"=>"Art", "path"=>"site-templates/creative/art"}, {"name"=>"Experimental", "path"=>"site-templates/creative/experimental"} ...]
67
+ ```
68
+
69
+ - [`prices_for_item`](https://build.envato.com/api/#market_ItemPrices)
70
+
71
+ ```rb
72
+ client.prices_for_item(13582227)
73
+ # => [{"licence"=>"Regular License", "price"=>"24.00"}, {"licence"=>"Extended License", "price"=>"1200.00"}]
74
+ ```
75
+
76
+ - [`featured_by_site`](https://build.envato.com/api/#market_Features)
77
+
78
+ ```rb
79
+ client.featured_by_site('themeforest')
80
+ # => {"featured_file"=>{"id"=>"14631264", "item"=>"Luxury - Responsive Virtuemart Theme", "url"=>"http://themeforest.net/item/luxury-responsive-virtuemart-theme/14631264", "user"=>"dasinfomedia", "thumbnail"=>"https://0.s3.envato.com/files/169212120/luxury_thumb_jml.png", "sales"=>"27", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"48.00", "uploaded_on"=>"Wed Feb 03 04:32:39 +1100 2016", "last_update"=>"Wed Mar 23 01:40:20 +1100 2016", "tags"=>"clean, clear shop, clothing, creative design, fashion, home furniture, joomla 3 theme, lifestyle, modern, online shop, professional joomla template", "category"=>"cms-themes/joomla/retail/fashion", "live_preview_url"=>"https://0.s3.envato.com/files/169212284/01_preview.__large_preview.png"}, "featured_author"=>{"id"=>"2016597", "user"=>"DigitalAtelier", "url"=>"http://themeforest.net/user/digitalatelier", "thumbnail"=>"https://0.s3.envato.com/files/50767715/logo.png"}, "free_file"=>{"id"=>"11403244", "item"=>"Melica – Responsive WordPress Blog Theme", "url"=>"http://themeforest.net/item/melica-responsive-wordpress-blog-theme/11403244", "user"=>"wphunters", "thumbnail"=>"https://0.s3.envato.com/files/174945675/thumbnail.png", "sales"=>"52", "rating"=>"5.0", "rating_decimal"=>"5.00", "cost"=>"44.00", "uploaded_on"=>"Fri May 22 05:00:32 +1000 2015", "last_update"=>"Wed Mar 02 00:53:28 +1100 2016", "tags"=>"blog, blogger, clean, creative, fashion, food, instagram, minimal, modern, music, personal,slider, travel, video", "category"=>"wordpress/blog-magazine/personal", "live_preview_url"=>"https://0.s3.envato.com/files/174945678/preview_wp.__large_preview.jpg"}}
81
+ ```
82
+
83
+ - [`random_new_items_by_site`](https://build.envato.com/api/#market_RandomNewFiles)
84
+
85
+ ```rb
86
+ client.random_new_items_by_site('themeforest')
87
+ # => [{"id"=>"15345030", "item"=>"Legal justice - HTML Template", "url"=>"http://themeforest.net/item/legal-justice-html-template/15345030", "user"=>"Xstyler", "thumbnail"=>"https://0.s3.envato.com/files/176988930/Thumbnail.png", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"15.00"}, {"id"=>"15346859", "item"=>"Gear — Automotive Business/Auto Parts Store PSD Template", "url"=>"http://themeforest.net/item/gear-automotive-businessauto-parts-store-psd-template/15346859", "user"=>"torbara", "thumbnail"=>"https://0.s3.envato.com/files/177009058/Gear_Icon.png", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"12.00"}, {"id"=>"15343695", "item"=>"Noren - Multi Store Responsive HTML Template","url"=>"http://themeforest.net/item/noren-multi-store-responsive-html-template/15343695", "user"=>"EngoTheme", "thumbnail"=>"https://0.s3.envato.com/files/178795450/80x80.jpg", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"17.00"}, {"id"=>"14770935", "item"=>"Outlaw - Stylish WooCommerce WordPress Theme", "url"=>"http://themeforest.net/item/outlaw-stylish-woocommerce-wordpress-theme/14770935", "user"=>"elusivethemes", "thumbnail"=>"https://0.s3.envato.com/files/178441822/thumb.jpg", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"59.00"}, {"id"=>"15101532", "item"=>"Ri Quartz - Responsive Multipurpose WooCommerce Theme", "url"=>"http://themeforest.net/item/ri-quartz-responsive-multipurpose-woocommerce-theme/15101532", "user"=>"CleverSoft", "thumbnail"=>"https://0.s3.envato.com/files/174287786/quartz.jpg", "sales"=>"1", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"59.00"}, {"id"=>"15332367", "item"=>"Highstand - Responsive MultiPurpose HTML5 Template ", "url"=>"http://themeforest.net/item/highstand-responsive-multipurpose-html5-template-/15332367", "user"=>"gsrthemes9", "thumbnail"=>"https://0.s3.envato.com/files/178795406/thumb.jpg", "sales"=>"1", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"17.00"}, {"id"=>"15156133", "item"=>"James - Responsive WooCommerce Shoes Theme", "url"=>"http://themeforest.net/item/james-responsive-woocommerce-shoes-theme/15156133", "user"=>"roadthemes", "thumbnail"=>"https://0.s3.envato.com/files/178879482/thumbnail.png", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"59.00"}, {"id"=>"15319096", "item"=>"Mozar - Fashion Clothing Bootstrap Template", "url"=>"http://themeforest.net/item/mozar-fashion-clothing-bootstrap-template/15319096", "user"=>"BootExperts", "thumbnail"=>"https://0.s3.envato.com/files/176721976/thumbnail.png", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"17.00"}, {"id"=>"14752612", "item"=>"Hash - Responsive WordPress Magazine Theme", "url"=>"http://themeforest.net/item/hash-responsive-wordpress-magazine-theme/14752612", "user"=>"PremiumLayers", "thumbnail"=>"https://0.s3.envato.com/files/178438623/80x80.jpg", "sales"=>"0", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"49.00"}, {"id"=>"15079135", "item"=>"BlueMed - Health and Medical WordPress Theme", "url"=>"http://themeforest.net/item/bluemed-health-and-medical-wordpress-theme/15079135", "user"=>"happy_robot", "thumbnail"=>"https://0.s3.envato.com/files/178384359/icon.png", "sales"=>"1", "rating"=>"0.0", "rating_decimal"=>"0.00", "cost"=>"49.00"}]
88
+ ```
89
+
39
90
  #### User
40
91
 
41
92
  - [`account_details`](https://build.envato.com/api/#market_Account)
@@ -2,6 +2,7 @@ require 'envato/connection'
2
2
  require 'envato/configurable'
3
3
  require 'envato/client/stats'
4
4
  require 'envato/client/user'
5
+ require 'envato/client/catalog'
5
6
 
6
7
  module Envato
7
8
  class Client
@@ -10,6 +11,7 @@ module Envato
10
11
  include Envato::Configurable
11
12
  include Envato::Client::Stats
12
13
  include Envato::Client::User
14
+ include Envato::Client::Catalog
13
15
 
14
16
  def initialize(options = {})
15
17
  Envato::Configurable.keys.each do |key|
@@ -0,0 +1,47 @@
1
+ module Envato
2
+ class Client
3
+ module Catalog
4
+ def get_public_collection(collection_id)
5
+ response = get "v3/market/catalog/collection?id=#{collection_id}"
6
+ response['collection']
7
+ end
8
+
9
+ def get_item(item_id)
10
+ get "v3/market/catalog/item?id=#{item_id}"
11
+ end
12
+
13
+ def popular_items_by_site(sitename)
14
+ raise Envato::InvalidSiteName unless marketplace_names.include? sitename
15
+
16
+ response = get "v1/market/popular:#{sitename}.json"
17
+ response['popular']
18
+ end
19
+
20
+ def categories_by_site(sitename)
21
+ raise Envato::InvalidSiteName unless marketplace_names.include? sitename
22
+
23
+ response = get "v1/market/categories:#{sitename}.json"
24
+ response['categories']
25
+ end
26
+
27
+ def prices_for_item(item_id)
28
+ response = get "v1/market/item-prices:#{item_id}.json"
29
+ response['item-prices']
30
+ end
31
+
32
+ def featured_by_site(sitename)
33
+ raise Envato::InvalidSiteName unless marketplace_names.include? sitename
34
+
35
+ response = get "v1/market/features:#{sitename}.json"
36
+ response['features']
37
+ end
38
+
39
+ def random_new_items_by_site(sitename)
40
+ raise Envato::InvalidSiteName unless marketplace_names.include? sitename
41
+
42
+ response = get "v1/market/random-new-files:#{sitename}.json"
43
+ response['random-new-files']
44
+ end
45
+ end
46
+ end
47
+ end
@@ -37,6 +37,11 @@ module Envato
37
37
  response = get "v1/market/new-files-from-user:#{username},#{sitename}.json"
38
38
  response['new-files-from-user']
39
39
  end
40
+
41
+ def user_collections
42
+ response = get 'v3/market/user/collections.json'
43
+ response['collections']
44
+ end
40
45
  end
41
46
  end
42
47
  end
@@ -32,7 +32,7 @@ module Envato
32
32
 
33
33
  case response.status.to_i
34
34
  when 403 then raise Envato::ForbiddenError, extract_forbidden_message(response)
35
- when 404 then raise Envato::NotFoundError
35
+ when 404 then raise Envato::NotFoundError, extract_not_found_message(response)
36
36
  when 405..499 then raise Envato::ClientError
37
37
  when 500..599 then raise Envato::ServerError, extract_server_error_message(response)
38
38
  end
@@ -46,12 +46,17 @@ module Envato
46
46
 
47
47
  def extract_forbidden_message(response)
48
48
  body = JSON.parse(response.body)
49
- body['error_description']
49
+ body['error_description'] if body['error_description']
50
+ end
51
+
52
+ def extract_not_found_message(response)
53
+ body = JSON.parse(response.body)
54
+ body['description'] if body['description']
50
55
  end
51
56
 
52
57
  def extract_server_error_message(response)
53
58
  body = JSON.parse(response.body)
54
- body['message']
59
+ body['message'] if body['message']
55
60
  end
56
61
  end
57
62
  end
@@ -1,6 +1,6 @@
1
1
  module Envato
2
2
  MAJOR = 0
3
- MINOR = 1
3
+ MINOR = 2
4
4
  PATCH = 0
5
5
  VERSION = [MAJOR, MINOR, PATCH].join '.'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envato-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Bednarz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-08 00:00:00.000000000 Z
11
+ date: 2016-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -144,6 +144,7 @@ files:
144
144
  - lib/envato-sdk.rb
145
145
  - lib/envato.rb
146
146
  - lib/envato/client.rb
147
+ - lib/envato/client/catalog.rb
147
148
  - lib/envato/client/stats.rb
148
149
  - lib/envato/client/user.rb
149
150
  - lib/envato/configurable.rb
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
171
  version: '0'
171
172
  requirements: []
172
173
  rubyforge_project:
173
- rubygems_version: 2.2.5
174
+ rubygems_version: 2.5.1
174
175
  signing_key:
175
176
  specification_version: 4
176
177
  summary: SDK for interacting with the Envato API.