database.go 1.0 KB

1234567891011121314151617181920212223242526272829
  1. package db
  2. import (
  3. "github.com/gshopify/service-wrapper/model"
  4. "github.com/gshopify/service-wrapper/server/middleware"
  5. "gshopper.com/gshopify/products/graphql/generated"
  6. "time"
  7. )
  8. const (
  9. cacheTimeout = time.Hour
  10. cacheCapacity = 4096
  11. )
  12. type Database interface {
  13. Ping() error
  14. Close() error
  15. Product(ln model.LanguageCode, handle *string, id *string) (*generated.Product, error)
  16. Products(ln model.LanguageCode, collectionId *string) ([]*generated.Product, error)
  17. ProductOptions(ln model.LanguageCode, id string) ([]*generated.ProductOption, error)
  18. ProductVariants(ctx *middleware.GShopifyContext, id string) ([]*generated.ProductVariant, error)
  19. ProductVariantOptions(ln model.LanguageCode, id string) ([]*generated.SelectedOption, error)
  20. ProductTags() ([]model.ProductTag, error)
  21. Collection(ln model.LanguageCode, handle *string, id *string) (*generated.Collection, error)
  22. Collections(ln model.LanguageCode) ([]*generated.Collection, error)
  23. ProductCollections(ln model.LanguageCode, id string) ([]*generated.Collection, error)
  24. }