Sha256: 0527cfb8b7e824508d5def6c29b5080547f34587e7b9003dc642e258597c67ef

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Crowdin
  module ApiResources
    module Storages
      def list_storages(query = {})
        request = Web::Request.new(
          connection,
          :get,
          "#{config.target_api_url}/storages",
          { params: query }
        )
        Web::SendRequest.new(request).perform
      end

      def add_storage(file = nil)
        file || raise_parameter_is_required_error(:file)

        file    = file.is_a?(File) ? file : File.open(file, 'r')
        headers = { 'Content-Type' => 'application/octet-stream', 'Crowdin-API-FileName' => File.basename(file) }

        request = Web::Request.new(
          connection,
          :post,
          "#{config.target_api_url}/storages",
          { params: file, headers: headers }
        )
        Web::SendRequest.new(request).perform
      end

      def get_storage(storage_id = nil)
        storage_id || raise_parameter_is_required_error(:storage_id)

        request = Web::Request.new(
          connection,
          :get,
          "#{config.target_api_url}/storages/#{storage_id}"
        )
        Web::SendRequest.new(request).perform
      end

      def delete_storage(storage_id = nil)
        storage_id || raise_parameter_is_required_error(:storage_id)

        request = Web::Request.new(
          connection,
          :delete,
          "#{config.target_api_url}/storages/#{storage_id}"
        )
        Web::SendRequest.new(request).perform
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
crowdin-api-1.4.0 lib/crowdin-api/api_resources/storages.rb
crowdin-api-1.3.0 lib/crowdin-api/api_resources/storages.rb