This commit is contained in:
2024-03-25 11:55:01 +02:00
commit 5c13135615
254 changed files with 36649 additions and 0 deletions

View File

@ -0,0 +1,32 @@
package models
type ClientInfo struct {
ClientID string `json:"clientId"`
Name string `json:"name"`
WebHookURL string `json:"webHookUrl"`
Permissions string `json:"permissions"`
Accounts []Account `json:"accounts_list"`
Jars []Jar `json:"jars"`
}
type Account struct {
ID string `json:"id"`
SendID string `json:"sendId"`
Balance int `json:"balance"`
CreditLimit int `json:"creditLimit"`
Type string `json:"type"`
CurrencyCode int `json:"currencyCode"`
CashbackType string `json:"cashbackType"`
MaskedPan []string `json:"maskedPan"`
Iban string `json:"iban"`
}
type Jar struct {
ID string `json:"id"`
SendID string `json:"sendId"`
Title string `json:"title"`
Description string `json:"description"`
CurrencyCode int `json:"currencyCode"`
Balance int `json:"balance"`
Goal int `json:"goal"`
}

View File

@ -0,0 +1,19 @@
package requests
import (
"encoding/json"
"main/monobank"
models2 "main/monobank/api/client_info/models"
)
func ClientInfo() (models2.ClientInfo, error) {
data := models2.ClientInfo{}
responseJson, err := monobank.Request("GET", "https://firefly3.monobank.ua/personal/client-info", struct{}{})
if err != nil {
return data, err
}
json.Unmarshal([]byte(responseJson), &data)
return data, nil
}

View File

@ -0,0 +1,6 @@
package models
type Data struct {
Account string `json:"account"`
StatementItem StatementItem `json:"statementItem"`
}

View File

@ -0,0 +1,16 @@
package models
type StatementItem struct {
ID string `json:"id"`
Time int `json:"time"`
Description string `json:"description"`
Mcc int `json:"mcc"`
OriginalMcc int `json:"originalMcc"`
Amount int `json:"amount"`
OperationAmount int `json:"operationAmount"`
CurrencyCode int `json:"currencyCode"`
CommissionRate int `json:"commissionRate"`
CashbackAmount int `json:"cashbackAmount"`
Balance int `json:"balance"`
Hold bool `json:"hold"`
}

View File

@ -0,0 +1,6 @@
package models
type Transaction struct {
Type string `json:"type"`
Data Data `json:"data"`
}

37
monobank/request.go Normal file
View File

@ -0,0 +1,37 @@
package monobank
import (
"bytes"
"encoding/json"
"io"
"net/http"
"os"
)
func Request(method string, url string, data interface{}) (string, error) {
apiMonabankToken := os.Getenv("MONOBANK_TOKEN")
json, err := json.Marshal(data)
if err != nil {
return "", err
}
r, err := http.NewRequest(method, url, bytes.NewBuffer(json))
if err != nil {
return "", err
}
r.Header.Add("Accept", "application/vnd.firefly3+json")
r.Header.Add("Content-Type", "application/json")
r.Header.Add("X-Token", apiMonabankToken)
client := &http.Client{}
res, err := client.Do(r)
if err != nil {
return "", err
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
return string(body), nil
}