module WCC::Contentful::Event

Public Class Methods

from_raw(raw, context = nil) click to toggle source

Creates an Event out of a raw value received by a webhook or given from the Contentful Sync API.

# File lib/wcc/contentful/event.rb, line 10
def self.from_raw(raw, context = nil)
  const = Registry.instance.get(raw.dig('sys', 'type'))

  const.new(raw, context)
end
new(raw, context = nil, source: nil) click to toggle source
# File lib/wcc/contentful/event.rb, line 38
def initialize(raw, context = nil, source: nil)
  @raw = raw.freeze
  @source = source

  created_at = raw.dig('sys', 'createdAt')
  created_at = Time.parse(created_at) if created_at.present?
  updated_at = raw.dig('sys', 'updatedAt')
  updated_at = Time.parse(updated_at) if updated_at.present?
  @sys = WCC::Contentful::Sys.new(
    raw.dig('sys', 'id'),
    raw.dig('sys', 'type'),
    raw.dig('sys', 'locale') || context.try(:[], :locale) || 'en-US',
    raw.dig('sys', 'space', 'sys', 'id'),
    created_at,
    updated_at,
    raw.dig('sys', 'revision'),
    OpenStruct.new(context).freeze
  )
end