forked from spacecodewor/fmpcloud-go
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheconomics.go
More file actions
79 lines (64 loc) · 1.86 KB
/
economics.go
File metadata and controls
79 lines (64 loc) · 1.86 KB
1
2
3
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package fmpcloud
import (
"time"
jsoniter "github.com/json-iterator/go"
"github.com/spacecodewor/fmpcloud-go/objects"
)
// Url const for request
const (
urlAPIEconomicsMarketRiskPremium = "/v4/market_risk_premium"
urlAPIEconomicsTreasury = "/v4/treasury"
urlAPIEconomicsIndicator = "/v4/economic"
)
// Economics client
type Economics struct {
Client *HTTPClient
}
// MarketRiskPremium - Market Risk Premium for each countr
func (e *Economics) MarketRiskPremium() (mList []objects.EconomicsMarketRisk, err error) {
data, err := e.Client.Get(urlAPIEconomicsMarketRiskPremium, nil)
if err != nil {
return nil, err
}
err = jsoniter.Unmarshal(data.Body(), &mList)
if err != nil {
return nil, err
}
return mList, nil
}
// TreasuryRates - Historical treasury rates (between the "from" and "to" parameters the maximum time interval can be 3 months)
func (e *Economics) TreasuryRates(from time.Time, to time.Time) (tList []objects.EconomicsTreasuryRates, err error) {
data, err := e.Client.Get(
urlAPIEconomicsTreasury,
map[string]string{
"from": from.Format("2006-01-02"),
"to": to.Format("2006-01-02"),
})
if err != nil {
return nil, err
}
err = jsoniter.Unmarshal(data.Body(), &tList)
if err != nil {
return nil, err
}
return tList, nil
}
// Indicator - https://site.financialmodelingprep.com/developer/docs/economic-indicator-api
func (e *Economics) Indicator(indicator string, from *time.Time, to *time.Time) (iList []objects.EconomicsIndicator, err error) {
req := map[string]string{"indicator": indicator}
if from != nil {
req["from"] = from.Format("2006-01-02")
}
if to != nil {
req["to"] = to.Format("2006-01-02")
}
data, err := e.Client.Get(urlAPIEconomicsIndicator, req)
if err != nil {
return nil, err
}
err = jsoniter.Unmarshal(data.Body(), &iList)
if err != nil {
return nil, err
}
return iList, nil
}