Sha256: a2c26c83c38aaf3100145b535f0c65913642f5c80e7ee7f8267d33260bbc598e

Contents?: true

Size: 1.34 KB

Versions: 40

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Decidim
  module Core
    # This type represents a translated field in multiple languages.
    TranslatedFieldType = GraphQL::ObjectType.define do
      name "TranslatedField"
      description "A translated field"

      field :locales do
        type types[types.String]
        description "Lists all the locales in which this translation is available"
        resolve ->(obj, _args, _ctx) { obj.keys }
      end

      field :translations do
        type !types[LocalizedStringType]
        description "All the localized strings for this translation."

        argument :locales do
          type types[!types.String]
          description "A list of locales to scope the translations to."
        end

        resolve lambda { |obj, args, _ctx|
          translations = obj.stringify_keys
          translations = translations.slice(*args["locales"]) if args["locales"]

          translations.map { |locale, text| OpenStruct.new(locale: locale, text: text) }
        }
      end

      field :translation do
        type types.String
        description "Returns a single translation given a locale."
        argument :locale, !types.String, "A locale to search for"

        resolve lambda { |obj, args, _ctx|
          translations = obj.stringify_keys
          translations[args["locale"]]
        }
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
decidim-core-0.23.6 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.5 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.4 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.3 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.2 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.1.rc1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.23.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.22.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.21.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.20.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.20.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.19.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.18.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.19.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.17.2 app/types/decidim/core/translated_field_type.rb
decidim-core-0.18.0 app/types/decidim/core/translated_field_type.rb
decidim-core-0.17.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.16.1 app/types/decidim/core/translated_field_type.rb
decidim-core-0.17.0 app/types/decidim/core/translated_field_type.rb