Sha256: 70755a17e78b60cf510c487f0f06a52c12a94e64f2fa695c9b904bef59bd8b7b

Contents?: true

Size: 1.76 KB

Versions: 11

Compression:

Stored size: 1.76 KB

Contents

require 'phraseapp-in-context-editor-ruby/api_collection'

module PhraseApp
  module InContextEditor
    class ApiWrapper
      def initialize
        @api_client = PhraseApp::InContextEditor.api_client
      end

      def default_locale
        @default_locale ||= select_default_locale
      end

      def default_translation(key)
        params = PhraseApp::RequestParams::TranslationsByKeyParams.new
        translations = PhraseApp::InContextEditor::ApiCollection.new(@api_client, "translations_by_key", project_and_key_id(key), params).collection
        return unless translations.present?

        translations.select{ |translation| translation.locale["id"] == default_locale.id }
      end

      def keys_with_prefix(prefix)
        params = PhraseApp::RequestParams::KeysSearchParams.new(q:"#{prefix}*")
        keys_list(params)
      end

      def keys_by_names(names)
        names = names.join(',')
        params = PhraseApp::RequestParams::KeysSearchParams.new(:q => "name:#{names}")
        keys_list(params)
      end

      def keys_list(params)
        PhraseApp::InContextEditor::ApiCollection.new(@api_client, "keys_search", project_id, params).collection
      end

      def blacklisted_keys
        PhraseApp::InContextEditor::ApiCollection.new(@api_client, "blacklisted_keys_list", project_id).collection.map{ |rule| rule.name }
      end

      private

      def select_default_locale
        locales = PhraseApp::InContextEditor::ApiCollection.new(@api_client, "locales_list", project_id).collection
        return unless locales.present?

        locales.select{ |loc| loc.default }.first
      end

      def project_id
        [PhraseApp::InContextEditor.project_id]
      end

      def project_and_key_id(key)
        project_id << key.id
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
phraseapp-in-context-editor-ruby-1.4.0 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.3.1 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.3.0 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.2.1 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.2.0 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.1.0 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.0.6 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.0.5 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.0.4 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.0.3 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb
phraseapp-in-context-editor-ruby-1.0.2 lib/phraseapp-in-context-editor-ruby/api_wrapper.rb