class Flow::Cli::Utils::FlowApiManager

Attributes

current_flow_id[RW]
current_org_id[RW]
current_project_id[RW]
current_project_name[RW]
email[RW]
password[RW]
user_access_token[RW]

Public Class Methods

load_from_db() click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 133
def load_from_db
  dict = DbManager.read
  new(dict)
end
login(email, password) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 127
def login(email, password)
  dict = FlowApiRest.post("/login", login: email, password: password)
  DbManager.save(email: email, password: password, user_access_token: dict[:access_token])
  { email: email, password: password, user_access_token: dict[:access_token] }
end
new(hash = {}) { |self| ... } click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 9
def initialize(hash = {})
  %i[email password user_access_token].each do |item|
    send "#{item}=", hash[item.to_s]
  end
  yield self if block_given?
end

Public Instance Methods

delete_p12(p12_id, flow_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 52
def delete_p12(p12_id, flow_id)
  send_to_api(:delete, "/certificates/#{p12_id}", flow_id: flow_id)
end
delete_provision(mobileprovisions_id, flow_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 66
def delete_provision(mobileprovisions_id, flow_id)
  send_to_api(:delete, "/mobileprovisions/#{mobileprovisions_id}", flow_id: flow_id)
end
fetch_flow(flow_id, project_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 70
def fetch_flow(flow_id, project_id)
  send_to_api(:get, "/flows/#{flow_id}", project_id: project_id)
end
fetch_flows(project_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 36
def fetch_flows(project_id)
  send_to_api(:get, "/projects/#{project_id}/flows")
end
fetch_latest_jobs(flow_id, project_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 74
def fetch_latest_jobs(flow_id, project_id)
  answer = send_to_api(:get, "/projects/#{project_id}/jobs", flow_id: flow_id)
  answer[:list] || []
end
fetch_orgs() click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 20
def fetch_orgs
  raw_orgs = FlowApiRest.get("/orgs", access_token: user_access_token)
  raw_orgs.map do |org|
    org.slice(:id, :name)
  end
end
fetch_project(project_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 32
def fetch_project(project_id)
  send_to_apapi_manageri(:get, "/projects/#{project_id}")
end
fetch_projects(specify_org_id = nil) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 27
def fetch_projects(specify_org_id = nil)
  org_id = specify_org_id || current_org_id
  send_to_api(:get, "/projects", { org_id: org_id }, %i[id name git_url source])
end
fetch_user() click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 16
def fetch_user
  send_to_api("get", "/user")
end
init_access_token() click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 96
def init_access_token
  answer = self.class.login(email, password)
  self.user_access_token = answer[:access_token]
end
load_p12s(flow_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 48
def load_p12s(flow_id)
  send_to_api(:get, "/flows/#{flow_id}/certificates")
end
load_provisions(flow_id) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 62
def load_provisions(flow_id)
  send_to_api(:get, "/flows/#{flow_id}/mobileprovisions")
end
login(email, password) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 114
def login(email, password)
  hash = self.class.login(email, password)
  %i[email password user_access_token].each do |item|
    send "#{item}=", hash[item]
  end
end
refresh_login() { || ... } click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 101
def refresh_login(&proc)
  fetch_user
rescue FlowApiError
  puts "login fail, relogin..."
  tmp_email = nil
  tmp_password = nil
  tmp_email, tmp_password = yield unless proc.nil?
  self.email = tmp_email || email
  self.password = tmp_password || password
  login(email, password)
  self
end
run_manual_job(flow_id, project_id, branch) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 79
def run_manual_job(flow_id, project_id, branch)
  send_to_api(:post, "/projects/#{project_id}/manual_hook", flow_id: flow_id, branch: branch)
end
send_to_api(action, url, params = {}, slice_items = nil, need_access_token = true) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 84
def send_to_api(action, url, params = {}, slice_items = nil, need_access_token = true)
  params[:access_token] = user_access_token if need_access_token
  params.compact!
  raw_answer = FlowApiRest.send(action, url, params)

  return raw_answer if slice_items.nil?
  raise "slice need be a array with symbols" unless slice_items.is_a? Array

  return raw_answer.map { |item| item.slice(*slice_items) } if raw_answer.is_a? Array
  raw_answer.slice(*slice_items)
end
standard_file(file) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 121
def standard_file(file)
  return File.open(file) if file.is_a?(String)
  file
end
upload_p12(flow_id, file, password = nil) click to toggle source

5909e8c4ef2cb07bcefc3dbd

# File lib/flow/cli/utils/api/flow_api_manager.rb, line 41
def upload_p12(flow_id, file, password = nil)
  send_to_api(:post, "/flows/#{flow_id}/certificates",
              file: standard_file(file),
              type: "ios",
              password: password)
end
upload_provision(flow_id, file) click to toggle source
# File lib/flow/cli/utils/api/flow_api_manager.rb, line 56
def upload_provision(flow_id, file)
  send_to_api(:post, "/flows/#{flow_id}/mobileprovisions",
              file: standard_file(file),
              flow_id: flow_id)
end