package cardmarket import ( "bytes" "context" "encoding/json" ) type ArticleCondition = string const ( Mint ArticleCondition = "MT" NearMint ArticleCondition = "NM" Excellent ArticleCondition = "EX" Good ArticleCondition = "GD" LightPlayed ArticleCondition = "LP" Played ArticleCondition = "PL" Poor ArticleCondition = "PO" ) type LanguageID = uint8 const ( English LanguageID = iota + 1 French German Spanish Italian SimplifiedChinese Japanese Portuguese Russian Korean TraditionalChinese ) type Article struct { ProductID uint16 Count uint8 LanguageID LanguageID Comments []byte Price float32 Condition ArticleCondition IsFoil bool IsSigned bool IsAltered bool } func (c *ApiClient) CreateArticle( ctx context.Context, productID uint16, count uint8, languageID LanguageID, comments []byte, price float32, condition ArticleCondition, isFoil *bool, isSigned *bool, isAltered *bool, ) (*Article, error) { type requestBodyArticle struct { ProductID uint16 `json:"idProduct"` Count uint8 `json:"count"` LanguageID LanguageID `json:"idLanguage"` Comments []byte `json:"comments"` Price float32 `json:"price"` Condition ArticleCondition `json:"condition"` IsFoil *bool `json:"isFoil,omitempty"` IsSigned *bool `json:"isSigned,omitempty"` IsAltered *bool `json:"isAltered,omitempty"` } reqBody := []requestBodyArticle{ { ProductID: productID, Count: count, LanguageID: languageID, Comments: comments, Price: price, Condition: condition, IsFoil: isFoil, IsSigned: isSigned, IsAltered: isAltered, }, } reqBodyBuf, err := json.Marshal(reqBody) if err != nil { return nil, err } resp, err := c.httpClient.PostWithContext( ctx, c.baseURL+"/stock", "application/json", bytes.NewReader(reqBodyBuf), ) if err != nil { return nil, err } respBodyBuf := make([]byte, 1024) _, err = resp.Body.Read(respBodyBuf) if err != nil { return nil, err } defer resp.Body.Close() type responseBody struct { Inserted map[string]string Error string `json:"error"` } respBody := new(responseBody) if err = json.Unmarshal(respBodyBuf, respBody); err != nil { return nil, err } return &Article{}, nil }