class Fastlane::Provider::MetadataChangesProvider

Constants

OOB_URI
SCOPE

Public Class Methods

fetchMetaDataChanges(params) click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/provider/metadata_changes_provider.rb, line 16
def self.fetchMetaDataChanges(params) 
  UI.message("Attempting to fetch metadata changes.".yellow)

  countryMetaDataArray = getMetaDataArray(params)

  if countryMetaDataArray == nil || countryMetaDataArray.empty?
    UI.message("Error: Couldn't fetch metadata updates. Plugin won't run!".red)
    raise Exception, "Lane was stopped by script"
  else
    UI.message("Step: Fetch successfull!".blue)
  end

  return countryMetaDataArray
end

Private Class Methods

authorizedService(params) click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/provider/metadata_changes_provider.rb, line 61
def self.authorizedService(params) 
  client_secret_path_param = params[:apiCredentialsPath]
  application_name = params[:spreadsheetApplicationName]
  credentials_path = params[:credentialsPath]
  
  service = Google::Apis::SheetsV4::SheetsService.new
  service.client_options.application_name = application_name
  client_id = Google::Auth::ClientId.from_file(client_secret_path_param)
  token_store = Google::Auth::Stores::FileTokenStore.new(file: credentials_path)
  authorizer = Google::Auth::UserAuthorizer.new(
    client_id, SCOPE, token_store)
  user_id = 'default'
  credentials = authorizer.get_credentials(user_id)
  service.authorization = credentials
  return service
end
getDescriptionsArray(params) click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/provider/metadata_changes_provider.rb, line 50
def self.getDescriptionsArray(params) 
  spreadsheet_id = params[:spreadsheetId]
  service = self.authorizedService(params)
  
  range = 'Master!B1:K7'
  response = service.get_spreadsheet_values(spreadsheet_id, range)
  puts 'No data found.' if response.values.empty?
  return self.parseResponseJSON(response)
end
getMetaDataArray(params) click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/provider/metadata_changes_provider.rb, line 32
def self.getMetaDataArray(params) 
  changesArray = getDescriptionsArray(params)  

  tempArray = []
    changesArray.each do |row|
      tempMetaData = MetaData.new
      tempMetaData.language = row[0]
      tempMetaData.description_android = row[1]
      tempMetaData.description_ios = row[2]
      tempMetaData.releaseNotesiOS = row[3]
      tempMetaData.releaseNotesAndroid = row[4]
      tempArray << tempMetaData
    end   

    return tempArray
end
parseResponseJSON(response) click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/provider/metadata_changes_provider.rb, line 79
def self.parseResponseJSON(response) 
  transposed = response.values.transpose
  size = transposed.size
  array = Array.new()
  transposed.each do |row|
    dictionary = {:language => row[0], :descriptionAndroid => row[1], :descriptioniOS => row[2], :releaseNotesiOS => row[3], :releaseNotesAndroid => row[4]}
    array << dictionary
  end
end