예제 #1
0
파일: cron.go 프로젝트: asvins/operations
func notify() {
	pack := models.Pack{}
	now := time.Now().Unix()
	nowPlus30Min := now + 30*60
	nowMinus30Min := now - 30*30

	gteSlice := []string{"date|" + strconv.FormatInt(nowMinus30Min, 10)}
	lteSlice := []string{"date|" + strconv.FormatInt(nowPlus30Min, 10)}

	pack.Base.Query = make(map[string][]string)
	pack.Base.Query["gte"] = gteSlice
	pack.Base.Query["lte"] = lteSlice

	packs, err := pack.Retrieve(db)
	if err != nil {
		fmt.Println("[ERROR] ", err.Error())
		return
	}

	mailTo := []string{}
	for _, p := range packs {
		mailTo = append(mailTo, p.Email)
	}

	mail := mailer.Mail{To: mailTo, Subject: "Hora do remédio", Body: mailer.TemplatePackTime}
	b, err := json.Marshal(&mail)
	if err != nil {
		fmt.Println("[ERROR] ", err.Error())
		return
	}

	producer.Publish("send_mail", b)
}
예제 #2
0
func retrievePacks(w http.ResponseWriter, r *http.Request) errors.Http {
	p := models.Pack{}
	if err := BuildStructFromQueryString(&p, r.URL.Query()); err != nil {
		return errors.BadRequest(err.Error())
	}

	p.Base.Query = r.URL.Query()

	packs, err := p.Retrieve(db)
	if err != nil {
		return errors.BadRequest(err.Error())
	}

	if len(packs) == 0 {
		return errors.NotFound("record not found")
	}
	rend.JSON(w, http.StatusOK, packs)

	return nil
}