/
pit_organ.go
58 lines (47 loc) · 1.01 KB
/
pit_organ.go
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
package pitOrgan
import (
"net/url"
"time"
)
type OandaEnvironment int
const (
OandaPractice OandaEnvironment = iota + 1
OandaLive
oandaDummy
)
type Connection struct {
Token string
Environemnt OandaEnvironment
Timeout time.Duration
// テスト用、APIの動作を厳密にする
strict bool
}
type baseURLs struct {
rest *url.URL
stream *url.URL
}
func oandaBaseURL(env OandaEnvironment) *baseURLs {
var urls *baseURLs
switch env {
case OandaPractice:
urls = &baseURLs{
rest: parseURL("https://api-fxpractice.oanda.com"),
stream: parseURL("https://stream-fxpractice.oanda.com"),
}
case OandaLive:
urls = &baseURLs{
rest: parseURL("https://api-fxtrade.oanda.com"),
stream: parseURL("https://stream-fxtrade.oanda.com"),
}
case oandaDummy:
urls = &baseURLs{
rest: parseURL("https://192.0.2.1"),
stream: parseURL("https://192.0.2.2"),
}
}
return urls
}
func parseURL(urlString string) *url.URL {
urlStructure, _ := url.Parse(urlString)
return urlStructure
}