Skip to content

Commit

Permalink
Merge pull request #148 from nnqq/147-fix-market-false
Browse files Browse the repository at this point in the history
Closes #147
  • Loading branch information
SevereCloud authored Oct 31, 2020
2 parents eab8573 + da5e36c commit b8ee6ed
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
19 changes: 19 additions & 0 deletions api/wall_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,25 @@ func TestVK_WallGetByID(t *testing.T) {
noError(t, err)
}

// See https://github.com/SevereCloud/vksdk/issues/147
func TestVK_WallGetByID_issues147(t *testing.T) {
t.Parallel()

needServiceToken(t)

res, err := vkService.WallGetByID(api.Params{
"posts": "-195263939_4",
})
noError(t, err)
assert.NotEmpty(t, res)

res, err = vkService.WallGetByID(api.Params{
"posts": "-169097025_377",
})
noError(t, err)
assert.NotEmpty(t, res[0].Attachments[0].Market.ID)
}

func TestVK_WallGetComment(t *testing.T) {
t.Parallel()

Expand Down
24 changes: 24 additions & 0 deletions object/market.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package object // import "github.com/SevereCloud/vksdk/v2/object"

import (
"bytes"
"encoding/json"
"fmt"
)

Expand Down Expand Up @@ -72,6 +74,28 @@ type MarketMarketItem struct {
CartQuantity int `json:"cart_quantity"`
}

// UnmarshalJSON MarketMarketItem.
//
// BUG(VK): https://github.com/SevereCloud/vksdk/issues/147
func (market *MarketMarketItem) UnmarshalJSON(data []byte) error {
if bytes.Equal(data, []byte("false")) {
return nil
}

type renamedMarketMarketItem MarketMarketItem

var r renamedMarketMarketItem

err := json.Unmarshal(data, &r)
if err != nil {
return err
}

*market = MarketMarketItem(r)

return nil
}

// MarketMarketItemProperty struct.
type MarketMarketItemProperty struct {
VariantID int `json:"variant_id"`
Expand Down
21 changes: 21 additions & 0 deletions object/market_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package object_test

import (
"encoding/json"
"testing"

"github.com/SevereCloud/vksdk/v2/object"
"github.com/stretchr/testify/assert"
)

func TestMarketMarketItem_ToAttachment(t *testing.T) {
Expand All @@ -19,6 +21,25 @@ func TestMarketMarketItem_ToAttachment(t *testing.T) {
f(object.MarketMarketItem{ID: 20, OwnerID: -10}, "market-10_20")
}

func TestMarketMarketItem__UnmarshalJSON(t *testing.T) {
t.Parallel()

f := func(data []byte, wantMarket object.MarketMarketItem) {
var market object.MarketMarketItem

err := json.Unmarshal(data, &market)
assert.NoError(t, err)
assert.Equal(t, wantMarket, market)
}

f([]byte("false"), object.MarketMarketItem{})
f([]byte(`{"id":1}`), object.MarketMarketItem{ID: 1})

var market object.MarketMarketItem
err := json.Unmarshal([]byte("0"), &market)
assert.Error(t, err)
}

func TestMarketMarketAlbum_ToAttachment(t *testing.T) {
t.Parallel()

Expand Down

0 comments on commit b8ee6ed

Please sign in to comment.