lib/ruby_lokalise_api/rest/files.rb in ruby-lokalise-api-7.2.0 vs lib/ruby_lokalise_api/rest/files.rb in ruby-lokalise-api-8.0.0.rc1
- old
+ new
@@ -1,50 +1,69 @@
# frozen_string_literal: true
module RubyLokaliseApi
module Rest
module Files
- # Returns all translation files for the given project
+ # Returns project files
#
# @see https://developers.lokalise.com/reference/list-all-files
- # @return [RubyLokaliseApi::Collection::File<RubyLokaliseApi::Resources::File>]
+ # @return [RubyLokaliseApi::Collections::Files]
# @param project_id [String]
- # @param params [Hash]
- def files(project_id, params = {})
- c_r RubyLokaliseApi::Collections::File, :all, project_id, params
+ # @param req_params [Hash]
+ def files(project_id, req_params = {})
+ name = 'Files'
+ params = { query: project_id, req: req_params }
+
+ data = endpoint(name: name, params: params).do_get
+
+ collection name, data
end
- # Exports translation files as .zip bundle, uploads them to Amazon S3 and
- # returns a URL to the generated bundle. The URL is valid for a year
+ # Uploads translation file to the project in the background
#
- # @see https://developers.lokalise.com/reference/download-files
- # @return [Hash]
+ # @see https://developers.lokalise.com/reference/upload-a-file
+ # @return [RubyLokaliseApi::Resources::QueuedProcess]
# @param project_id [String]
- # @param params [Hash]
- def download_files(project_id, params)
- c_r RubyLokaliseApi::Resources::File, :download, [project_id, 'download'], params
+ # @param req_params [Hash]
+ def upload_file(project_id, req_params)
+ params = { query: [project_id, :upload], req: req_params }
+
+ response = endpoint(name: 'Files', params: params).do_post
+
+ process_id = response.content.dig('process', 'process_id')
+
+ response.patch_endpoint_with endpoint(name: 'QueuedProcesses', params: { query: [project_id, process_id] })
+
+ resource 'QueuedProcess', response
end
- # Imports translation file to the given project. File data must base64-encoded.
- # To encode your data in Base64, use `Base64.strict_encode64()` method.
+ # Downloads translation files from the project
#
- # @see https://developers.lokalise.com/reference/upload-a-file
- # @return [Hash]
+ # @see https://developers.lokalise.com/reference/download-files
+ # @return [RubyLokaliseApi::Generics::DownloadBundle]
# @param project_id [String]
- # @param params [Hash]
- def upload_file(project_id, params)
- c_r RubyLokaliseApi::Resources::File, :upload, [project_id, 'upload'], params
+ # @param req_params [Hash]
+ def download_files(project_id, req_params)
+ params = { query: [project_id, :download], req: req_params }
+
+ data = endpoint(name: 'Files', params: params).do_post
+
+ RubyLokaliseApi::Generics::DownloadBundle.new data.content
end
- # Deletes a file and it's associated keys from the project.
- # File __unassigned__ cannot be deleted.
+ # Deletes a single file from the project.
+ # Only the "Documents" projects are supported
#
# @see https://developers.lokalise.com/reference/delete-a-file
- # @return [Hash]
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
# @param project_id [String]
- # @param params [Hash]
+ # @param file_id [String, Integer]
def destroy_file(project_id, file_id)
- c_r RubyLokaliseApi::Resources::File, :destroy, [project_id, file_id]
+ params = { query: [project_id, file_id] }
+
+ data = endpoint(name: 'Files', params: params).do_delete
+
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
end
end
end
end