summaryrefslogtreecommitdiff
path: root/src/cardmarket/handlers/account.go
blob: 213766d898c0d8dbec7fbd830b0c8f403d374095 (plain)
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
package handlers

import (
	"context"

	"codeberg.org/dijitol/trading_post/src/cardmarket"
)

type Account struct {
	UserID            uint32 `json:"idUser"`
	Username          string `json:"username"`
	Type              uint8  `json:"isCommercial"`
	Reputation        uint8  `json:"reputation"`
	SalesCount        uint32 `json:"sellCount"`
	OnVacation        bool   `json:"onVacation"`
	Country           string `json:"country"`
	MaySell           bool   `json:"maySell"`
	SellerStatus      uint8  `json:"sellerActivation"`
	ShipsFast         int8   `json:"shipsFast"`
	SoldItemCount     uint32 `json:"soldItems"`
	AvgShippingTime   uint8  `json:"avgShippingTime"`
	DisplayLanguageID uint8  `json:"idDisplayLanguage"`
	Name              struct {
		First string `json:"firstName"`
		Last  string `json:"lastName"`
	} `json:"name"`
	HomeAddress struct {
		ReceiverName string `json:"name"`
		Extra        string `json:"extra"`
		Street       string `json:"street"`
		PostCode     string `json:"zip"`
		City         string `json:"city"`
		Country      string `json:"country"`
	} `json:"homeAddress"`
	Email            string `json:"email"`
	PhoneNumber      string `json:"phoneNumber"`
	VAT              string `json:"vat"`
	LegalInformation string `json:"legalInformation"`
	RegistrationDate string `json:"registerDate"`
	IsActivated      bool   `json:"isActivated"`
	BankAccount      struct {
		AccountOwner string `json:"accountOwner"`
		IBAN         string `json:"iban"`
		BIC          string `json:"bic"`
		BankName     string `json:"bankName"`
	} `json:"bankAccount"`
	ArticlesInShoppingCart uint16 `json:"articlesInShoppingCart"`
	UnreadMessages         uint16 `json:"unreadMessages"`
	Wallet                 struct {
		TotalBalance           float32 `json:"totalBalance"`
		MoneyBalance           float32 `json:"moneyBalance"`
		BonusBalance           float32 `json:"bonusBalance"`
		UnpaidAmount           float32 `json:"unpaidAmount"`
		ProviderRechargeAmount float32 `json:"providerRechargeAmount"`
		CurrencyID             uint8   `json:"idCurrency"`
		CurrencyCode           string  `json:"currencyCode"`
	} `json:"moneyDetails"`
	RiskGroup      uint8  `json:"riskGroup"`
	LossPercentage string `json:"lossPercentage"`
}

func GetAccountInformation(ctx context.Context, c *cardmarket.ApiClient) (Account, error) {
	type responseBody struct {
		Account Account          `json:"account"`
		Links   cardmarket.Links `json:"links"`
	}
	respBody := &responseBody{}
	if err := c.Get(ctx, "/account", nil, respBody); err != nil {
		return Account{}, err
	}
	return respBody.Account, nil
}