/* * 1) SHIPAR BOX QUE SE INICIAM EM 7 DIAS COM UMA MARGEM DE +-1 dia - ok */ func shipIt() { b := models.Box{} now := time.Now().Unix() nowPlus6Dyas := now + 6*24*60*60 nowPlus8Days := now + 8*24*60*60 gteSlice := []string{"start_date|" + strconv.FormatInt(nowPlus6Dyas, 10)} lteSlice := []string{"start_date|" + strconv.FormatInt(nowPlus8Days, 10)} eqSlice := []string{"status|" + strconv.Itoa(models.BOX_PENDING)} b.Base.Query = make(map[string][]string) b.Base.Query["gte"] = gteSlice b.Base.Query["lte"] = lteSlice b.Base.Query["eq"] = eqSlice toShip, err := b.Retrieve(db) if err != nil { fmt.Println("[ERROR] Unable to retrieve boxes to ship: ", err.Error()) return } for _, curr := range toShip { err := consumeFromWarehouse(&curr) if err != nil { fmt.Println("[ERROR] ", err.Error()) } else { if ok := curr.VerifyOwnerPaymentStatus(); ok == true { curr.Status = models.BOX_SHIPED if err := curr.Update(db); err != nil { fmt.Println("[ERROR] ", err.Error()) return } } } } }
// 3) As box que começam hoje trocar o status de shiped para DELIVERED func onIt() { b := models.Box{} now := time.Now().Unix() nowPlus1Day := now + 1*24*60*60 nowMinus1Day := now - 1*24*60*60 gteSlice := []string{"start_date|" + strconv.FormatInt(nowPlus1Day, 10)} lteSlice := []string{"start_date|" + strconv.FormatInt(nowMinus1Day, 10)} eqSlice := []string{"status|" + strconv.Itoa(models.BOX_SHIPED)} b.Base.Query = make(map[string][]string) b.Base.Query["gte"] = gteSlice b.Base.Query["lte"] = lteSlice b.Base.Query["eq"] = eqSlice toOn, err := b.Retrieve(db) if err != nil { fmt.Println("[ERROR] ", err.Error()) return } for _, curr := range toOn { curr.Status = models.BOX_DELIVERED if err := curr.Update(db); err != nil { fmt.Println("[ERROR] ", err.Error()) return } } }
func retrieveBoxes(w http.ResponseWriter, r *http.Request) errors.Http { b := models.Box{} if err := BuildStructFromQueryString(&b, r.URL.Query()); err != nil { return errors.BadRequest(err.Error()) } b.Base.Query = r.URL.Query() boxes, err := b.Retrieve(db) if err != nil { return errors.BadRequest(err.Error()) } if len(boxes) == 0 { return errors.NotFound("record not found") } rend.JSON(w, http.StatusOK, boxes) return nil }