Advertisement
Guest User

Untitled

a guest
May 26th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. func sameInventory(newInventory, oldInventory []*Sku) bool {
  2. if len(newInventory) != len(oldInventory) {
  3. return false
  4. }
  5.  
  6. type invHolder struct {
  7. Size string
  8. Sku *string
  9. Count *uint
  10. }
  11.  
  12. newInvMap := make(map[string]invHolder)
  13. for _, newInv := range newInventory {
  14. newInvMap[newInv.VariantId] = invHolder{
  15. Size: newInv.Size,
  16. Sku: newInv.Sku,
  17. Count: newInv.Count,
  18. }
  19. }
  20.  
  21. for _, oldInv := range oldInventory {
  22. newInv, ok := newInvMap[oldInv.VariantId]
  23. if !ok {
  24. return false
  25. } else {
  26. sizesEqual := bool(oldInv.Size == newInv.Size)
  27. skusEqual := false
  28. countsEqual := false
  29.  
  30. if oldInv.Sku == nil && newInv.Sku == nil {
  31. skusEqual = true
  32. } else if oldInv.Sku != nil && newInv.Sku != nil {
  33. skusEqual = bool(*oldInv.Sku == *newInv.Sku)
  34. }
  35.  
  36. if oldInv.Count == nil && newInv.Count == nil {
  37. countsEqual = true
  38. } else if oldInv.Count != nil && newInv.Count != nil {
  39. countsEqual = bool(*oldInv.Count == *newInv.Count)
  40. }
  41.  
  42. if !(sizesEqual && skusEqual && countsEqual) {
  43. return false
  44. }
  45.  
  46. }
  47. }
  48.  
  49. return true
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement