From 2f61b07aea82fa0f5b98686bdfeba2e297c7b21b Mon Sep 17 00:00:00 2001 From: DJ O'Leary Date: Mon, 7 Sep 2026 03:13:01 +0200 Subject: refactor(cardmarket): move handlers to own directory --- src/cardmarket/handlers/account.go | 72 +++++++++++++++++++++++++++++++++++++ src/cardmarket/handlers/game.go | 26 ++++++++++++++ src/cardmarket/handlers/vacation.go | 47 ++++++++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 src/cardmarket/handlers/account.go create mode 100644 src/cardmarket/handlers/game.go create mode 100644 src/cardmarket/handlers/vacation.go (limited to 'src/cardmarket/handlers') diff --git a/src/cardmarket/handlers/account.go b/src/cardmarket/handlers/account.go new file mode 100644 index 0000000..213766d --- /dev/null +++ b/src/cardmarket/handlers/account.go @@ -0,0 +1,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 +} diff --git a/src/cardmarket/handlers/game.go b/src/cardmarket/handlers/game.go new file mode 100644 index 0000000..99b9046 --- /dev/null +++ b/src/cardmarket/handlers/game.go @@ -0,0 +1,26 @@ +package handlers + +import ( + "context" + + "codeberg.org/dijitol/trading_post/src/cardmarket" +) + +type Game struct { + GameID uint32 `json:"idGame"` + Name string `json:"name"` + Abbreviation string `json:"abbreviation"` + Links cardmarket.Links `json:"links"` +} + +func GetGames(ctx context.Context, c *cardmarket.ApiClient) ([]Game, error) { + type responseBody struct { + Game []Game `json:"game"` + Links cardmarket.Links `json:"links"` + } + respBody := &responseBody{} + if err := c.Get(ctx, "/games", nil, respBody); err != nil { + return nil, err + } + return respBody.Game, nil +} diff --git a/src/cardmarket/handlers/vacation.go b/src/cardmarket/handlers/vacation.go new file mode 100644 index 0000000..59528ed --- /dev/null +++ b/src/cardmarket/handlers/vacation.go @@ -0,0 +1,47 @@ +package handlers + +import ( + "context" + + "codeberg.org/dijitol/trading_post/src/cardmarket" +) + +func SetVacationState( + ctx context.Context, + c *cardmarket.ApiClient, + onVacation bool, + cancelOrders, relistItems *bool, +) error { + params := make(map[string]string, 3) + + if onVacation { + params["onVacation"] = "true" + } else { + params["onVacation"] = "false" + } + + if cancelOrders != nil { + if *cancelOrders { + params["cancelOrders"] = "true" + if relistItems != nil && *relistItems { + params["relistItems"] = "true" + } + } else { + params["cancelOrders"] = "false" + params["relistItems"] = "false" + } + } + + if err := c.Put( + ctx, + "/account/vacation", + params, + "", + nil, + nil, + ); err != nil { + return err + } + + return nil +} -- cgit v1.2.3