Class: Weeblycloud::Blog

Inherits:
CloudResource show all
Includes:
Deleteable, Saveable
Defined in:
lib/weeblycloud/blog.rb

Overview

Represents an Blog resource. cloud-developer.weebly.com/blog.html

Instance Attribute Summary

Attributes inherited from CloudResource

#properties

Instance Method Summary collapse

Methods included from Deleteable

#delete

Methods included from Saveable

#[]=, #save, #set_property

Methods inherited from CloudResource

#[], #get, #get_property, #to_s

Constructor Details

#initialize(user_id, site_id, blog_id, data = nil) ⇒ Blog

Returns a new instance of Blog.



15
16
17
18
19
20
21
22
# File 'lib/weeblycloud/blog.rb', line 15

def initialize(user_id, site_id, blog_id, data = nil)
  @user_id = user_id.to_i
  @site_id = site_id.to_i
  @blog_id = blog_id.to_i
  @endpoint = "user/#{@user_id}/site/#{@site_id}/blog/#{@blog_id}"

  super(data)
end

Instance Method Details

#create_blog_post(post_body, properties = {}) ⇒ Object

Creates a ‘BlogPost`. Requires the post’s body and optionally accepts keyword arguments of additional properties. Returns a ‘BlogPost` resource.



39
40
41
42
43
# File 'lib/weeblycloud/blog.rb', line 39

def create_blog_post(post_body, properties={})
  properties.merge!({"post_body"=>post_body})
  response = @client.post(@endpoint + "/post", :content=>properties)
  return BlogPost.new(@user_id, @site_id, @blog_id, response.json["post_id"], response.json)
end

#get_blog_post(blog_post_id) ⇒ Object

Return the ‘BlogPost` with the given id.



46
47
48
# File 'lib/weeblycloud/blog.rb', line 46

def get_blog_post(blog_post_id)
  return BlogPost.new(@user_id, @site_id, @blog_id, @blog_post_id)
end

#idObject

Returns the blog_id



25
26
27
# File 'lib/weeblycloud/blog.rb', line 25

def id
  @blog_id
end

#list_blog_posts(filters = {}) ⇒ Object

Returns a iterable of ‘BlogPost` resources for a given blog subject to an optional hash of argument filters.



31
32
33
34
# File 'lib/weeblycloud/blog.rb', line 31

def list_blog_posts(filters={})
  result = @client.get(@endpoint + "/post", :params=>filters)
  return result.map { |i| BlogPost.new(@user_id, @site_id, @blog_id, i["post_id"], i) }
end