Class: Fastlane::FirebaseManagementApi::Api
- Inherits:
-
Object
- Object
- Fastlane::FirebaseManagementApi::Api
show all
- Defined in:
- lib/fastlane/plugin/firebase_management_api/lib/api.rb
Defined Under Namespace
Classes: BadRequestError, LoginError
Instance Method Summary
collapse
-
#add_android_app(project_id, package_name, app_name) ⇒ Object
-
#add_ios_app(project_id, bundle_id, app_name) ⇒ Object
-
#android_app_list(project_id) ⇒ Object
-
#download_android_config_file(project_id, app_id) ⇒ Object
-
#download_ios_config_file(project_id, app_id) ⇒ Object
-
#initialize(access_token) ⇒ Api
constructor
-
#ios_app_list(project_id, params = nil) ⇒ Object
-
#project_list ⇒ Object
-
#request_json(path, method = :get, parameters = Hash.new, headers = Hash.new) ⇒ Object
-
#upload_certificate(project_number, client_id, type, certificate_value, certificate_password) ⇒ Object
-
#upload_sha(project_id, app_id, sha_hash, cert_type) ⇒ Object
Constructor Details
#initialize(access_token) ⇒ Api
Returns a new instance of Api.
19
20
21
22
23
24
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 19
def initialize(access_token)
@base_url = "https://firebase.googleapis.com"
@authorization_headers = {
'Authorization' => 'Bearer ' + access_token
}
end
|
Instance Method Details
#add_android_app(project_id, package_name, app_name) ⇒ Object
97
98
99
100
101
102
103
104
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 97
def add_android_app(project_id, package_name, app_name)
parameters = {
"packageName" => package_name,
"displayName" => app_name || ""
}
request_json("v1beta1/projects/#{project_id}/androidApps", :post, parameters)
end
|
#add_ios_app(project_id, bundle_id, app_name) ⇒ Object
88
89
90
91
92
93
94
95
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 88
def add_ios_app(project_id, bundle_id, app_name)
parameters = {
"bundleId" => bundle_id,
"displayName" => app_name || ""
}
request_json("v1beta1/projects/#{project_id}/iosApps", :post, parameters)
end
|
#android_app_list(project_id) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 73
def android_app_list(project_id)
UI.verbose "Retrieving app list for project #{project_id}"
apps = []
pageToken = nil
loop do
url = "v1beta1/projects/#{project_id}/androidApps" + (pageToken ? "?pageToken=#{pageToken}" : "")
json = request_json(url)
apps.concat(json["apps"] || [])
pageToken = json["nextPageToken"]
break if !pageToken
end
UI.verbose "Found #{apps.count} apps"
apps
end
|
#download_android_config_file(project_id, app_id) ⇒ Object
139
140
141
142
143
144
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 139
def download_android_config_file(project_id, app_id)
UI.verbose "Downloading config file"
json = request_json("v1beta1/projects/#{project_id}/androidApps/#{app_id}/config")
UI.verbose "Successfuly downloaded #{json["configFilename"]}"
json
end
|
#download_ios_config_file(project_id, app_id) ⇒ Object
132
133
134
135
136
137
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 132
def download_ios_config_file(project_id, app_id)
UI.verbose "Downloading config file"
json = request_json("v1beta1/projects/#{project_id}/iosApps/#{app_id}/config")
UI.verbose "Successfuly downloaded #{json["configFilename"]}"
json
end
|
#ios_app_list(project_id, params = nil) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 57
def ios_app_list(project_id, params = nil)
UI.verbose "Retrieving app list for project #{project_id}"
apps = []
pageToken = nil
loop do
url = "v1beta1/projects/#{project_id}/iosApps" + (pageToken ? "?pageToken=#{pageToken}" : "")
json = request_json(url)
apps.concat(json["apps"] || [])
pageToken = json["nextPageToken"]
break if !pageToken
end
UI.verbose "Found #{apps.count} apps"
apps
end
|
#project_list ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 49
def project_list
UI.verbose "Retrieving project list"
json = request_json("v1beta1/projects")
projects = json["results"] || []
UI.verbose "Found #{projects.count} projects"
projects
end
|
#request_json(path, method = :get, parameters = Hash.new, headers = Hash.new) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 26
def request_json(path, method = :get, parameters = Hash.new, = Hash.new)
begin
if method == :get then
response = HTTParty.get("#{@base_url}/#{path}", headers: .merge(@authorization_headers), format: :plain)
elsif method == :post then
['Content-Type'] = 'application/json'
response = HTTParty.post("#{@base_url}/#{path}", headers: .merge(@authorization_headers), body: parameters.to_json, format: :plain)
end
case response.code
when 400...600
UI.crash! response
else
JSON.parse(response)
end
rescue HTTParty::Error => e
UI.crash! e.response.body
rescue StandardError => e
UI.crash! e
end
end
|
#upload_certificate(project_number, client_id, type, certificate_value, certificate_password) ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 118
def upload_certificate(project_number, client_id, type, certificate_value, certificate_password)
prefix = type == :development ? "debug" : "prod"
parameters = {
"#{prefix}ApnsCertificate" => {
"certificateValue" => certificate_value,
"apnsPassword" => certificate_password
}
}
json = request_json("v1/projects/#{project_number}/clients/#{client_id}:setApnsCertificate", :post, parameters)
end
|
#upload_sha(project_id, app_id, sha_hash, cert_type) ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/fastlane/plugin/firebase_management_api/lib/api.rb', line 106
def upload_sha(project_id, app_id, sha_hash, cert_type)
UI.verbose "Uploading sha"
parameters = {
"shaHash" => sha_hash,
"certType" => cert_type,
}
json = request_json("v1beta1/projects/#{project_id}/androidApps/#{app_id}/sha", :post, parameters)
UI.verbose "Successfuly uploaded sha"
json
end
|