Method: DeployGate::AddDevicesServer#start

Defined in:
lib/deploygate/add_devices_server.rb

#start(token, owner_name, bundle_id, distribution_key, args, options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/deploygate/add_devices_server.rb', line 4

def start(token, owner_name, bundle_id, distribution_key, args, options)
  DeployGate::Xcode::MemberCenter.instance
  options.server = false

  puts I18n.t('command_builder.add_devices.server.connecting')
  res = DeployGate::API::V1::Users::Apps::CliWebsockets.create(token, owner_name, bundle_id, distribution_key)

  server = res[:webpush_server]
  push_token  = res[:push_token]
  action  = res[:action]
  if res[:error] || server.blank? || push_token.blank? || action.blank?
    raise res[:message]
  end

  websocket_setup(server, bundle_id, push_token, action, args, options) do |socket|
    puts HighLine.color(I18n.t('command_builder.add_devices.server.start'), HighLine::GREEN)

    Workers::PeriodicTimer.new(60) do
      DeployGate::API::V1::Users::Apps::CliWebsockets.heartbeat(token, owner_name, bundle_id, distribution_key, push_token)
    end

    Signal.trap(:INT){
      socket.disconnect
      exit 0
    }
  end

  loop do
    sleep 60
  end
end