class Fastlane::Actions::BuddybuildListAppsAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 53
def self.authors
  ["Jorge Revuelta"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 61
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :api_access_token,
                                  env_name: "BUDDYBUILD_API_ACCESS_TOKEN",
                                  description: "The Buddybuild API Access Token for a given account",
                                  optional: false,
                                  type: String)
  ]
end
description() click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 49
def self.description
  "Retrieves all the applications for a given account in Buddybuild."
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 71
def self.is_supported?(platform)
  true
end
return_value() click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 57
def self.return_value
  # If your method provides a return value, you can describe here what it does
end
run(params) click to toggle source
# File lib/fastlane/plugin/buddybuild/actions/buddybuild_list_apps_action.rb, line 4
def self.run(params)
  require 'faraday'
  require 'faraday_middleware'
  require 'json'

  UI.error("API Access Token not set") unless params[:api_access_token]

  buddybuild_api_base_url = 'https://api.buddybuild.com'

  conn = Faraday.new(:url => buddybuild_api_base_url) do |builder|
    builder.authorization :Bearer, params[:api_access_token]
    builder.adapter :net_http
  end
  response = conn.get '/v1/apps'

  case response.status
  when 200...300
    # Print table
    options = [
      "Number",
      "App Id",
      "Name",
      "Platform"
    ]

    json = JSON.parse(response.body)

    rows = []
    json.each_with_index do |value, i|
      index = i + 1
      rows << [index, value['_id'], value['app_name'], value['platform']]
    end

    puts Terminal::Table.new(
      title: "Buddybuild Applications".green,
      headings: options,
      rows: FastlaneCore::PrintTable.transform_output(rows)
    )
    return response.body
  else
    UI.user_error!('Error retrieving applications: #{response.status} - #{response.body}')
  end
  
end