Class: SchwabRb::Stream::MessageBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/schwab_rb/stream/message_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(customer_id, correl_id) ⇒ MessageBuilder

Returns a new instance of MessageBuilder.



8
9
10
11
12
# File 'lib/schwab_rb/stream/message_builder.rb', line 8

def initialize(customer_id, correl_id)
  @customer_id = customer_id
  @correl_id = correl_id
  @request_id = 0
end

Instance Method Details

#build_login(access_token, channel, function_id) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/schwab_rb/stream/message_builder.rb', line 14

def (access_token, channel, function_id)
  {
    "service" => "ADMIN",
    "command" => Commands::,
    "requestid" => next_request_id,
    "SchwabClientCustomerId" => @customer_id,
    "SchwabClientCorrelId" => @correl_id,
    "parameters" => {
      "Authorization" => access_token,
      "SchwabClientChannel" => channel,
      "SchwabClientFunctionId" => function_id
    }
  }
end

#build_logoutObject



29
30
31
32
33
34
35
36
37
# File 'lib/schwab_rb/stream/message_builder.rb', line 29

def build_logout
  {
    "service" => "ADMIN",
    "command" => Commands::LOGOUT,
    "requestid" => next_request_id,
    "SchwabClientCustomerId" => @customer_id,
    "SchwabClientCorrelId" => @correl_id
  }
end

#build_request(service, command, keys: nil, fields: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/schwab_rb/stream/message_builder.rb', line 39

def build_request(service, command, keys: nil, fields: nil)
  request = {
    "service" => service,
    "command" => command,
    "requestid" => next_request_id,
    "SchwabClientCustomerId" => @customer_id,
    "SchwabClientCorrelId" => @correl_id,
    "parameters" => {}
  }

  request["parameters"]["keys"] = Array(keys).join(",") if keys
  request["parameters"]["fields"] = Fields.resolve(service, fields).join(",") if fields

  request
end

#wrap_requests(*requests) ⇒ Object



55
56
57
# File 'lib/schwab_rb/stream/message_builder.rb', line 55

def wrap_requests(*requests)
  { "requests" => requests.flatten }.to_json
end