radar-api 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/radar/api/analyzer_controller.rb +46 -0
- data/lib/radar/api/fund_service.rb +110 -0
- data/lib/radar/api/radar_types.rb +75 -10
- data/lib/radar/api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4acbe7c1666c71a7649bf0481bc1f72f49c71b7e
|
4
|
+
data.tar.gz: 4b6f6546afba2e17f4b084a9c50ceaf9b1d0a07d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27084b83a8e3e59cbe46190023c91ed5786b015578ac6a7df7beb6c909c3be7c7051cb519da75d918ac50520d393c59f15a266251e5f419e6afa945f6a07d079
|
7
|
+
data.tar.gz: 361dbdade799ed51f495128246eb9d68b0095d0053e6f5a41eee1a5c4b1f23f4d3e050dcf65a554ccc73b1e5537c0c4ba2a241c13abf885cae56017ba820b616
|
data/Gemfile.lock
CHANGED
@@ -49,6 +49,13 @@ module Radar
|
|
49
49
|
def send_on_finish(session_id, portfolio)
|
50
50
|
send_message('on_finish', On_finish_args, :session_id => session_id, :portfolio => portfolio)
|
51
51
|
end
|
52
|
+
def on_cash_flow(session_id, cash_flow)
|
53
|
+
send_on_cash_flow(session_id, cash_flow)
|
54
|
+
end
|
55
|
+
|
56
|
+
def send_on_cash_flow(session_id, cash_flow)
|
57
|
+
send_message('on_cash_flow', On_cash_flow_args, :session_id => session_id, :cash_flow => cash_flow)
|
58
|
+
end
|
52
59
|
def create_session(session_id, analyzer_id)
|
53
60
|
send_create_session(session_id, analyzer_id)
|
54
61
|
return recv_create_session()
|
@@ -152,6 +159,12 @@ module Radar
|
|
152
159
|
return
|
153
160
|
end
|
154
161
|
|
162
|
+
def process_on_cash_flow(seqid, iprot, oprot)
|
163
|
+
args = read_args(iprot, On_cash_flow_args)
|
164
|
+
@handler.on_cash_flow(args.session_id, args.cash_flow)
|
165
|
+
return
|
166
|
+
end
|
167
|
+
|
155
168
|
def process_create_session(seqid, iprot, oprot)
|
156
169
|
args = read_args(iprot, Create_session_args)
|
157
170
|
result = Create_session_result.new()
|
@@ -326,6 +339,39 @@ module Radar
|
|
326
339
|
::Thrift::Struct.generate_accessors self
|
327
340
|
end
|
328
341
|
|
342
|
+
class On_cash_flow_args
|
343
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
344
|
+
SESSION_ID = 1
|
345
|
+
CASH_FLOW = 2
|
346
|
+
|
347
|
+
FIELDS = {
|
348
|
+
SESSION_ID => {:type => ::Thrift::Types::I16, :name => 'session_id'},
|
349
|
+
CASH_FLOW => {:type => ::Thrift::Types::STRUCT, :name => 'cash_flow', :class => ::Radar::API::CashFlow}
|
350
|
+
}
|
351
|
+
|
352
|
+
def struct_fields; FIELDS; end
|
353
|
+
|
354
|
+
def validate
|
355
|
+
end
|
356
|
+
|
357
|
+
::Thrift::Struct.generate_accessors self
|
358
|
+
end
|
359
|
+
|
360
|
+
class On_cash_flow_result
|
361
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
362
|
+
|
363
|
+
FIELDS = {
|
364
|
+
|
365
|
+
}
|
366
|
+
|
367
|
+
def struct_fields; FIELDS; end
|
368
|
+
|
369
|
+
def validate
|
370
|
+
end
|
371
|
+
|
372
|
+
::Thrift::Struct.generate_accessors self
|
373
|
+
end
|
374
|
+
|
329
375
|
class Create_session_args
|
330
376
|
include ::Thrift::Struct, ::Thrift::Struct_Union
|
331
377
|
SESSION_ID = 1
|
@@ -28,6 +28,36 @@ module Radar
|
|
28
28
|
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'name failed: unknown result')
|
29
29
|
end
|
30
30
|
|
31
|
+
def short_name(id)
|
32
|
+
send_short_name(id)
|
33
|
+
return recv_short_name()
|
34
|
+
end
|
35
|
+
|
36
|
+
def send_short_name(id)
|
37
|
+
send_message('short_name', Short_name_args, :id => id)
|
38
|
+
end
|
39
|
+
|
40
|
+
def recv_short_name()
|
41
|
+
result = receive_message(Short_name_result)
|
42
|
+
return result.success unless result.success.nil?
|
43
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'short_name failed: unknown result')
|
44
|
+
end
|
45
|
+
|
46
|
+
def daily_data(id, date)
|
47
|
+
send_daily_data(id, date)
|
48
|
+
return recv_daily_data()
|
49
|
+
end
|
50
|
+
|
51
|
+
def send_daily_data(id, date)
|
52
|
+
send_message('daily_data', Daily_data_args, :id => id, :date => date)
|
53
|
+
end
|
54
|
+
|
55
|
+
def recv_daily_data()
|
56
|
+
result = receive_message(Daily_data_result)
|
57
|
+
return result.success unless result.success.nil?
|
58
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'daily_data failed: unknown result')
|
59
|
+
end
|
60
|
+
|
31
61
|
end
|
32
62
|
|
33
63
|
class Processor
|
@@ -40,6 +70,20 @@ module Radar
|
|
40
70
|
write_result(result, oprot, 'name', seqid)
|
41
71
|
end
|
42
72
|
|
73
|
+
def process_short_name(seqid, iprot, oprot)
|
74
|
+
args = read_args(iprot, Short_name_args)
|
75
|
+
result = Short_name_result.new()
|
76
|
+
result.success = @handler.short_name(args.id)
|
77
|
+
write_result(result, oprot, 'short_name', seqid)
|
78
|
+
end
|
79
|
+
|
80
|
+
def process_daily_data(seqid, iprot, oprot)
|
81
|
+
args = read_args(iprot, Daily_data_args)
|
82
|
+
result = Daily_data_result.new()
|
83
|
+
result.success = @handler.daily_data(args.id, args.date)
|
84
|
+
write_result(result, oprot, 'daily_data', seqid)
|
85
|
+
end
|
86
|
+
|
43
87
|
end
|
44
88
|
|
45
89
|
# HELPER FUNCTIONS AND STRUCTURES
|
@@ -76,6 +120,72 @@ module Radar
|
|
76
120
|
::Thrift::Struct.generate_accessors self
|
77
121
|
end
|
78
122
|
|
123
|
+
class Short_name_args
|
124
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
125
|
+
ID = 1
|
126
|
+
|
127
|
+
FIELDS = {
|
128
|
+
ID => {:type => ::Thrift::Types::STRUCT, :name => 'id', :class => ::Radar::API::FundId}
|
129
|
+
}
|
130
|
+
|
131
|
+
def struct_fields; FIELDS; end
|
132
|
+
|
133
|
+
def validate
|
134
|
+
end
|
135
|
+
|
136
|
+
::Thrift::Struct.generate_accessors self
|
137
|
+
end
|
138
|
+
|
139
|
+
class Short_name_result
|
140
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
141
|
+
SUCCESS = 0
|
142
|
+
|
143
|
+
FIELDS = {
|
144
|
+
SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
|
145
|
+
}
|
146
|
+
|
147
|
+
def struct_fields; FIELDS; end
|
148
|
+
|
149
|
+
def validate
|
150
|
+
end
|
151
|
+
|
152
|
+
::Thrift::Struct.generate_accessors self
|
153
|
+
end
|
154
|
+
|
155
|
+
class Daily_data_args
|
156
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
157
|
+
ID = 1
|
158
|
+
DATE = 2
|
159
|
+
|
160
|
+
FIELDS = {
|
161
|
+
ID => {:type => ::Thrift::Types::STRUCT, :name => 'id', :class => ::Radar::API::FundId},
|
162
|
+
DATE => {:type => ::Thrift::Types::I32, :name => 'date'}
|
163
|
+
}
|
164
|
+
|
165
|
+
def struct_fields; FIELDS; end
|
166
|
+
|
167
|
+
def validate
|
168
|
+
end
|
169
|
+
|
170
|
+
::Thrift::Struct.generate_accessors self
|
171
|
+
end
|
172
|
+
|
173
|
+
class Daily_data_result
|
174
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
175
|
+
SUCCESS = 0
|
176
|
+
|
177
|
+
FIELDS = {
|
178
|
+
SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Radar::API::DailyFundData}
|
179
|
+
}
|
180
|
+
|
181
|
+
def struct_fields; FIELDS; end
|
182
|
+
|
183
|
+
def validate
|
184
|
+
end
|
185
|
+
|
186
|
+
::Thrift::Struct.generate_accessors self
|
187
|
+
end
|
188
|
+
|
79
189
|
end
|
80
190
|
|
81
191
|
end
|
@@ -18,9 +18,10 @@ module Radar
|
|
18
18
|
module Event
|
19
19
|
EACH_DAY = 0
|
20
20
|
EACH_MONTH = 1
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
CASH_FLOW = 2
|
22
|
+
FINISH = 3
|
23
|
+
VALUE_MAP = {0 => "EACH_DAY", 1 => "EACH_MONTH", 2 => "CASH_FLOW", 3 => "FINISH"}
|
24
|
+
VALID_VALUES = Set.new([EACH_DAY, EACH_MONTH, CASH_FLOW, FINISH]).freeze
|
24
25
|
end
|
25
26
|
|
26
27
|
module ResultType
|
@@ -32,6 +33,15 @@ module Radar
|
|
32
33
|
VALID_VALUES = Set.new([TABLE, PIE_CHART, LINE_CHART, BAR_CHART]).freeze
|
33
34
|
end
|
34
35
|
|
36
|
+
module CashFlowType
|
37
|
+
DIVIDEND = 0
|
38
|
+
INTEREST_ON_OWN_CAPITAL = 1
|
39
|
+
DEPOSIT = 2
|
40
|
+
WITHDRAWAL = 3
|
41
|
+
VALUE_MAP = {0 => "DIVIDEND", 1 => "INTEREST_ON_OWN_CAPITAL", 2 => "DEPOSIT", 3 => "WITHDRAWAL"}
|
42
|
+
VALID_VALUES = Set.new([DIVIDEND, INTEREST_ON_OWN_CAPITAL, DEPOSIT, WITHDRAWAL]).freeze
|
43
|
+
end
|
44
|
+
|
35
45
|
class StockId
|
36
46
|
include ::Thrift::Struct, ::Thrift::Struct_Union
|
37
47
|
SYMBOL = 1
|
@@ -83,11 +93,15 @@ module Radar
|
|
83
93
|
class IndexLinkedBondId
|
84
94
|
include ::Thrift::Struct, ::Thrift::Struct_Union
|
85
95
|
INDEX = 1
|
86
|
-
|
96
|
+
FACTOR = 2
|
97
|
+
BASE_DATE = 3
|
98
|
+
MATURITY_DATE = 4
|
87
99
|
|
88
100
|
FIELDS = {
|
89
101
|
INDEX => {:type => ::Thrift::Types::STRUCT, :name => 'index', :class => ::Radar::API::IndexId},
|
90
|
-
|
102
|
+
FACTOR => {:type => ::Thrift::Types::DOUBLE, :name => 'factor'},
|
103
|
+
BASE_DATE => {:type => ::Thrift::Types::I32, :name => 'base_date'},
|
104
|
+
MATURITY_DATE => {:type => ::Thrift::Types::I32, :name => 'maturity_date'}
|
91
105
|
}
|
92
106
|
|
93
107
|
def struct_fields; FIELDS; end
|
@@ -471,11 +485,15 @@ module Radar
|
|
471
485
|
ID = 1
|
472
486
|
VALUE = 2
|
473
487
|
RENTABILITY = 3
|
488
|
+
AVG_PRICE = 4
|
489
|
+
SHARES = 5
|
474
490
|
|
475
491
|
FIELDS = {
|
476
492
|
ID => {:type => ::Thrift::Types::STRUCT, :name => 'id', :class => ::Radar::API::SecurityId},
|
477
493
|
VALUE => {:type => ::Thrift::Types::DOUBLE, :name => 'value'},
|
478
|
-
RENTABILITY => {:type => ::Thrift::Types::DOUBLE, :name => 'rentability'}
|
494
|
+
RENTABILITY => {:type => ::Thrift::Types::DOUBLE, :name => 'rentability'},
|
495
|
+
AVG_PRICE => {:type => ::Thrift::Types::DOUBLE, :name => 'avg_price'},
|
496
|
+
SHARES => {:type => ::Thrift::Types::DOUBLE, :name => 'shares'}
|
479
497
|
}
|
480
498
|
|
481
499
|
def struct_fields; FIELDS; end
|
@@ -489,15 +507,17 @@ module Radar
|
|
489
507
|
class Portfolio
|
490
508
|
include ::Thrift::Struct, ::Thrift::Struct_Union
|
491
509
|
DATE = 1
|
492
|
-
|
493
|
-
|
494
|
-
|
510
|
+
POSITIONS = 2
|
511
|
+
RENTABILITY = 3
|
512
|
+
NAV = 4
|
513
|
+
CASH = 5
|
495
514
|
|
496
515
|
FIELDS = {
|
497
516
|
DATE => {:type => ::Thrift::Types::I32, :name => 'date'},
|
517
|
+
POSITIONS => {:type => ::Thrift::Types::MAP, :name => 'positions', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRUCT, :class => ::Radar::API::Position}},
|
498
518
|
RENTABILITY => {:type => ::Thrift::Types::DOUBLE, :name => 'rentability'},
|
499
519
|
NAV => {:type => ::Thrift::Types::DOUBLE, :name => 'nav'},
|
500
|
-
|
520
|
+
CASH => {:type => ::Thrift::Types::DOUBLE, :name => 'cash'}
|
501
521
|
}
|
502
522
|
|
503
523
|
def struct_fields; FIELDS; end
|
@@ -551,5 +571,50 @@ module Radar
|
|
551
571
|
::Thrift::Struct.generate_accessors self
|
552
572
|
end
|
553
573
|
|
574
|
+
class CashFlow
|
575
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
576
|
+
DATE = 1
|
577
|
+
VALUE = 2
|
578
|
+
BALANCE = 3
|
579
|
+
TYPE = 4
|
580
|
+
|
581
|
+
FIELDS = {
|
582
|
+
DATE => {:type => ::Thrift::Types::I32, :name => 'date'},
|
583
|
+
VALUE => {:type => ::Thrift::Types::DOUBLE, :name => 'value'},
|
584
|
+
BALANCE => {:type => ::Thrift::Types::DOUBLE, :name => 'balance'},
|
585
|
+
TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :enum_class => ::Radar::API::CashFlowType}
|
586
|
+
}
|
587
|
+
|
588
|
+
def struct_fields; FIELDS; end
|
589
|
+
|
590
|
+
def validate
|
591
|
+
unless @type.nil? || ::Radar::API::CashFlowType::VALID_VALUES.include?(@type)
|
592
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field type!')
|
593
|
+
end
|
594
|
+
end
|
595
|
+
|
596
|
+
::Thrift::Struct.generate_accessors self
|
597
|
+
end
|
598
|
+
|
599
|
+
class DailyFundData
|
600
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
601
|
+
PRICE = 1
|
602
|
+
DATE = 2
|
603
|
+
NAV = 3
|
604
|
+
|
605
|
+
FIELDS = {
|
606
|
+
PRICE => {:type => ::Thrift::Types::DOUBLE, :name => 'price'},
|
607
|
+
DATE => {:type => ::Thrift::Types::I32, :name => 'date'},
|
608
|
+
NAV => {:type => ::Thrift::Types::DOUBLE, :name => 'nav'}
|
609
|
+
}
|
610
|
+
|
611
|
+
def struct_fields; FIELDS; end
|
612
|
+
|
613
|
+
def validate
|
614
|
+
end
|
615
|
+
|
616
|
+
::Thrift::Struct.generate_accessors self
|
617
|
+
end
|
618
|
+
|
554
619
|
end
|
555
620
|
end
|
data/lib/radar/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radar-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- André Aizim Kelmanson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|