lib/wp/api/endpoints.rb in wp-api-0.1.1 vs lib/wp/api/endpoints.rb in wp-api-0.1.2
- old
+ new
@@ -1,20 +1,50 @@
module WP::API
module Endpoints
def posts(query = {})
- posts, headers = get("posts", query)
- posts.collect do |hash|
- WP::API::Post.new(hash, headers)
- end
+ resources('posts', query)
end
def post(id, query = {})
- WP::API::Post.new *get("posts/#{id}", query)
+ resource('posts', id, query)
end
def post_named(slug)
- posts(name: slug).first
+ resource_named('posts', slug)
+ end
+
+ def pages(query = {})
+ resources('pages', query)
+ end
+
+ def page(id, query = {})
+ resource('pages', id, query)
+ end
+
+ def page_named(slug)
+ resource_named('pages', slug)
+ end
+
+ private
+
+ def resources(res, query = {})
+ resources, headers = get(res, query)
+ resources.collect do |hash|
+ resource_class(res).new(hash, headers)
+ end
+ end
+
+ def resource(res, id, query = {})
+ resource_class(res).new *get("#{res}/#{id}", query)
+ end
+
+ def resource_named(res, slug)
+ resources(res, name: slug).first
+ end
+
+ def resource_class(res)
+ WP::API::const_get(res.classify)
end
end
end