class Socialfred::Publications
Constants
- ENDPOINT
Attributes
api_key[R]
api_url[R]
Public Class Methods
new(api_key, api_url:)
click to toggle source
# File lib/socialfred/publications.rb, line 12 def initialize(api_key, api_url:) @api_key = api_key @api_url = api_url end
Public Instance Methods
all(page: 1, per_page: 10)
click to toggle source
# File lib/socialfred/publications.rb, line 17 def all(page: 1, per_page: 10) response = requester.get(ENDPOINT, page: page, per_page: per_page) raise Socialfred::Error, response.body unless response.status == 200 JSON.parse(response.body) end
create(publish_at: nil, text:, images: nil, options: nil)
click to toggle source
# File lib/socialfred/publications.rb, line 33 def create(publish_at: nil, text:, images: nil, options: nil) check_images(images) if images publish_at = Time.parse(publish_at.to_s).iso8601 if publish_at parameters = { publication: { published_at: publish_at, text: text, images: images, options: options }.compact } response = requester.post(ENDPOINT, parameters) raise Socialfred::Error, response.body unless response.status == 200 JSON.parse(response.body) end
destroy(publication_id)
click to toggle source
# File lib/socialfred/publications.rb, line 57 def destroy(publication_id) response = requester.delete(ENDPOINT + "/#{publication_id}") raise Socialfred::Error, response.body unless response.status == 200 JSON.parse(response.body) end
find(publication_id)
click to toggle source
# File lib/socialfred/publications.rb, line 25 def find(publication_id) response = requester.get(ENDPOINT + "/#{publication_id}") raise Socialfred::Error, response.body unless response.status == 200 JSON.parse(response.body) end
update(publication_id, publish_at: nil, text: nil, images: nil, options: nil)
click to toggle source
# File lib/socialfred/publications.rb, line 45 def update(publication_id, publish_at: nil, text: nil, images: nil, options: nil) check_images(images) if images publish_at = Time.parse(publish_at.to_s).iso8601 if publish_at parameters = { publication: { published_at: publish_at, text: text, images: images, options: options }.compact } response = requester.put(ENDPOINT + "/#{publication_id}", parameters) raise Socialfred::Error, response.body unless response.status == 200 JSON.parse(response.body) end
Private Instance Methods
check_images(images)
click to toggle source
# File lib/socialfred/publications.rb, line 67 def check_images(images) raise(Socialfred::Error, 'images must be array') unless images.is_a?(Array) return if images.all? { |image| image.key?(:data) && image.key?(:filename) && image.key?(:content_type) } raise( Socialfred::Error, 'images must contain the following attributes: data (base64 encoded image), filename and content_type' ) end
requester()
click to toggle source
# File lib/socialfred/publications.rb, line 77 def requester @requester ||= Requester.new(api_key, api_url) end