323aa41e0f
None of this code is functional at the moment. I'm just writing some ideas of how I'd like to work.
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package monzoClient
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"monzoSerde"
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
"time"
|
|
"tokens"
|
|
"utils"
|
|
)
|
|
|
|
const (
|
|
accountID = "pizza"
|
|
)
|
|
|
|
type Client struct{}
|
|
|
|
// Ensure that the token server is running and return a new instance of a Client
|
|
// struct.
|
|
func Create() *Client {
|
|
tokens.StartServer()
|
|
time.Sleep(time.Second * 1)
|
|
return &Client{}
|
|
}
|
|
|
|
// Returns a slice of transactions from the last 24 hours.
|
|
func (c *Client) Transactions24Hours() []monzoSerde.Transaction {
|
|
token := tokens.AccessToken()
|
|
form := url.Values{"account_id": {accountID}}
|
|
client := http.Client{}
|
|
req, _ := http.NewRequest("POST", "https://api.monzo.com/transactions",
|
|
strings.NewReader(form.Encode()))
|
|
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))
|
|
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
|
|
req.Header.Add("User-Agent", "monzo-ynab")
|
|
res, err := client.Do(req)
|
|
|
|
utils.DebugRequest(req)
|
|
utils.DebugResponse(res)
|
|
|
|
if err != nil {
|
|
utils.DebugRequest(req)
|
|
utils.DebugResponse(res)
|
|
log.Fatal(err)
|
|
}
|
|
defer res.Body.Close()
|
|
|
|
return []monzoSerde.Transaction{}
|
|
}
|