aboutsummaryrefslogtreecommitdiff
path: root/pkg/navitia_api_client/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/navitia_api_client/client.go')
-rw-r--r--pkg/navitia_api_client/client.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/pkg/navitia_api_client/client.go b/pkg/navitia_api_client/client.go
new file mode 100644
index 0000000..aef8d0e
--- /dev/null
+++ b/pkg/navitia_api_client/client.go
@@ -0,0 +1,31 @@
+package navitia_api_client
+
+import (
+ "fmt"
+ "net/http"
+ "sync"
+ "time"
+)
+
+type Client struct {
+ baseURL string
+ httpClient *http.Client
+
+ mutex sync.Mutex
+ cache map[string]cachedResult
+}
+
+type cachedResult struct {
+ ts time.Time
+ result interface{}
+}
+
+func NewClient(token string) *Client {
+ return &Client{
+ baseURL: fmt.Sprintf("https://%s@api.sncf.com/v1", token),
+ httpClient: &http.Client{
+ Timeout: time.Minute,
+ },
+ cache: make(map[string]cachedResult),
+ }
+}