Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func sameInventory(newInventory, oldInventory []*Sku) bool {
- if len(newInventory) != len(oldInventory) {
- return false
- }
- type invHolder struct {
- Size string
- Sku *string
- Count *uint
- }
- newInvMap := make(map[string]invHolder)
- for _, newInv := range newInventory {
- newInvMap[newInv.VariantId] = invHolder{
- Size: newInv.Size,
- Sku: newInv.Sku,
- Count: newInv.Count,
- }
- }
- for _, oldInv := range oldInventory {
- newInv, ok := newInvMap[oldInv.VariantId]
- if !ok {
- return false
- } else {
- sizesEqual := bool(oldInv.Size == newInv.Size)
- skusEqual := false
- countsEqual := false
- if oldInv.Sku == nil && newInv.Sku == nil {
- skusEqual = true
- } else if oldInv.Sku != nil && newInv.Sku != nil {
- skusEqual = bool(*oldInv.Sku == *newInv.Sku)
- }
- if oldInv.Count == nil && newInv.Count == nil {
- countsEqual = true
- } else if oldInv.Count != nil && newInv.Count != nil {
- countsEqual = bool(*oldInv.Count == *newInv.Count)
- }
- if !(sizesEqual && skusEqual && countsEqual) {
- return false
- }
- }
- }
- return true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement