Exemplo n.º 1
0
/*
*	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
				}
			}
		}
	}
}
Exemplo n.º 2
0
//	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
		}
	}
}
Exemplo n.º 3
0
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
}