class Contentful::Scheduler::Tasks::Publish

Public Class Methods

perform(space_id, entry_id, token) click to toggle source
# File lib/contentful/scheduler/tasks/publish.rb, line 12
def self.perform(space_id, entry_id, token)

  logger = ::Contentful::Scheduler.config[:logger]
  access_token = ::Contentful::Scheduler.config[:spaces][space_id][:delivery_token]

  client = Contentful::Client.new(
      space: space_id,
      access_token: access_token
  )

  clientManagement = ::Contentful::Management::Client.new(
      token,
      raise_errors: true,
      application_name: 'contentful.scheduler',
      application_version: Contentful::Scheduler::VERSION
  )

  linked_entries = client.entries(links_to_entry: entry_id)

  if !linked_entries.raw["includes"].nil? && !linked_entries.raw["includes"]["Entry"].nil?
    linked_entries_ids = Taskshelper.extract_element_ids(linked_entries.raw["includes"]["Entry"])
    logger.info("Linked enteries for entry_id ==>> #{entry_id} are ==>> #{linked_entries_ids}")
    linked_entries_ids.each do |id|
      logger.info"Publishing linked entry with id #{id}"
      clientManagement.entries.find(space_id, id).publish
    end
  end

  clientManagement.entries.find(space_id, entry_id).publish
end