Sha256: e8c7af2a33dbde5f17d58655c03a494d15f434fdecc7a577e8599d446eec1508
Contents?: true
Size: 1.1 KB
Versions: 5
Compression:
Stored size: 1.1 KB
Contents
module Locomotive module Steam class APIEntrySubmissionService < Struct.new(:site, :locale, :ip_address) def submit(slug, attributes = {}) if load_content_type(slug) create_entry(attributes) else nil end end def find(type_slug, slug) if entry = load_content_type(type_slug).entries.where(_slug: slug).first make_entity(entry) end end def to_json(entry) make_entity(entry).to_json end private def load_content_type(slug) @content_type = site.content_types.where(slug: slug, public_submission_enabled: true).first end def create_entry(attributes) ::Mongoid::Fields::I18n.with_locale(locale) do service.public_create(attributes, { ip_address: ip_address }) end end def make_entity(entry) entity = entry.to_steam(@content_type) Locomotive::Steam::Decorators::I18nDecorator.new(entity, locale) end def service Locomotive::ContentEntryService.new(@content_type, nil) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems