retailer

package
v0.0.0-...-f7f7b21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2022 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OrderPriceDesc          string = "-price"
	OrderByAvailabilityAsc         = "availability"
	OrderByAvailabilityDesc        = "-availability"
	AvailabilityAvailable   int    = 1
	AvailabilityWithinDays         = 2
	AvailabilityWithinWeeks        = 3
	AvailabilityUnknown            = 4
)

Variables

This section is empty.

Functions

func UpdateRetailers

func UpdateRetailers(ps ProductUpserter, retailer ...Retailer) error

Types

type Filter

type Filter struct {
	Search          string
	OrderBy         string
	Retailer        string
	Page            uint
	ProductsPerPage uint
}

func (Filter) HasFilterCriteria

func (f Filter) HasFilterCriteria() bool

type MusikProduktiv

type MusikProduktiv struct {
	// contains filtered or unexported fields
}

func NewMusikProduktiv

func NewMusikProduktiv(http httpGetter) *MusikProduktiv

func (*MusikProduktiv) Categories

func (m *MusikProduktiv) Categories() []string

func (*MusikProduktiv) LoadProducts

func (m *MusikProduktiv) LoadProducts(category string, options RequestOptions) (ProductResponse, error)

type Product

type Product struct {
	Retailer          string    `json:"retailer"`
	Manufacturer      string    `json:"manufacturer"`
	Model             string    `json:"model"`
	Category          string    `json:"category"`
	IsAvailable       bool      `json:"is_available"`
	AvailabilityInfo  string    `json:"availability_info"`
	AvailabilityScore int       `json:"availability_score"`
	Price             float64   `json:"price"`
	ProductURL        string    `json:"product_url"`
	ThumbnailURL      string    `json:"thumbnail_url"`
	CreatedAt         time.Time `json:"created_at"`
	UpdatedAt         time.Time `json:"updated_at"`
}

func LoadProducts

func LoadProducts(r Retailer) ([]Product, error)

func (Product) String

func (p Product) String() string

type ProductResponse

type ProductResponse struct {
	Products    []Product
	CurrentPage uint
	LastPage    uint
}

type ProductUpserter

type ProductUpserter interface {
	Upsert([]Product) error
}

type RequestOptions

type RequestOptions struct {
	Page uint
}

type Retailer

type Retailer interface {
	LoadProducts(category string, options RequestOptions) (ProductResponse, error)
	Categories() []string
}

type Thomann

type Thomann struct {
	// contains filtered or unexported fields
}

func NewThomann

func NewThomann(http httpGetter) Thomann

func (Thomann) Categories

func (t Thomann) Categories() []string

func (Thomann) LoadProducts

func (t Thomann) LoadProducts(category string, options RequestOptions) (ProductResponse, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL