Sha256: c7cf813ab26ec023c3ff2e485f6564da07f5c3c8abfd83cb74986fbe71038b1a

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

module DqAdmin
  class FieldService 
    def self.config
      @@config ||= self.load
    end

    def self.load
      File.open(Rails.root + "config/fields.json") do |file|
        @@config = JSON.parse(file.read) 
      end
    rescue => e
      Rails.logger.info e.message
      throw e if Rails.env.development?
      []
    end

    def self.render(group, key, lang: I18n.locale.to_s)
      raise "key is required for render field" if key.blank?
      raise "group is required for render field" if group.blank?
      raise "lang is required for render field" if lang.blank?

      field_config = config.find {|item| item['key'] == key && item['group'] == group}
      field = DynamicField.find_by(key: key, lang: lang, group: group)

      if field.blank? 
        if block_given? 
          yield.html_safe
        end
        return nil
      end

      case field_config['type']
      when Field::TEXTAREA
        field.data.html_safe
      when Field::INPUT
        field.data
      when Field::SLIDE
      else
        nil
      end

    rescue => e
      Rails.logger.info e.message
      if Rails.env.development?
        raise e
      end
      nil
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dq_admin-0.4.3 app/services/dq_admin/field_service.rb
dq_admin-0.4.2 app/services/dq_admin/field_service.rb
dq_admin-0.4.0 app/services/dq_admin/field_service.rb
dq_admin-0.3.0 app/services/dq_admin/field_service.rb
dq_admin-0.2.0 app/services/dq_admin/field_service.rb
dq_admin-0.1.0 app/services/dq_admin/field_service.rb