Class: Fastlane::Helper::RustoredHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/fastlane/plugin/rustored/helper/rustored_helper.rb

Constant Summary collapse

BASE_URL =
'https://public-api.rustore.ru'

Class Method Summary collapse

Class Method Details

.clientObject



13
14
15
16
17
18
# File 'lib/fastlane/plugin/rustored/helper/rustored_helper.rb', line 13

def self.client
  @client ||= Faraday.new(url: BASE_URL) do |f|
    f.request(:multipart)
    f.response(:json)
  end
end

.publish_aab(key_id:, private_key:, package_name:, version_id:, aab_path:) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/fastlane/plugin/rustored/helper/rustored_helper.rb', line 20

def self.publish_aab(key_id:, private_key:, package_name:, version_id:, aab_path:)
  UI.user_error!("AAB file not found: #{aab_path}") unless File.file?(aab_path)
  UI.message("Uploading AAB to RuStore...")

  token = RustoredTokenHelper.get_token(key_id: key_id, private_key: private_key)

  response = client.post("/public/v1/application/#{package_name}/version/#{version_id}/aab") do |req|
    req.headers['Public-Token'] = token
    req.body = {
      file: Faraday::UploadIO.new(aab_path, 'application/octet-stream')
    }
  end

  check_response!(response, 'AAB')
  UI.success("AAB uploaded successfully!")
rescue Faraday::Error => e
  UI.user_error!("Failed to upload AAB: #{e.message}")
end

.publish_apk(key_id:, private_key:, package_name:, version_id:, services_type:, is_main_apk:, apk_path:) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/fastlane/plugin/rustored/helper/rustored_helper.rb', line 39

def self.publish_apk(key_id:, private_key:, package_name:, version_id:, services_type:, is_main_apk:, apk_path:)
  UI.user_error!("APK file not found: #{apk_path}") unless File.file?(apk_path)
  UI.message("Uploading APK to RuStore...")

  token = RustoredTokenHelper.get_token(key_id: key_id, private_key: private_key)

  response = client.post("/public/v1/application/#{package_name}/version/#{version_id}/apk") do |req|
    req.headers['Public-Token'] = token

    req.params['servicesType'] = services_type if services_type
    req.params['isMainApk'] = is_main_apk

    req.body = {
      file: Faraday::UploadIO.new(apk_path, 'application/octet-stream')
    }
  end

  check_response!(response, 'APK')
  UI.success("APK uploaded successfully!")
rescue Faraday::Error => e
  UI.user_error!("Failed to upload APK: #{e.message}")
end