Commit dae2992c authored by David Symonds's avatar David Symonds

misc/dashboard/codereview: send mail immediately, and fill in time.Time fields.

If we delay the mail sending, we can't send as the current user.
If we don't fill in the time.Time fields, datastore.Put will fail
because the zero time.Time value is out of its range.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6136053
parent 4de15a5c
......@@ -16,7 +16,6 @@ import (
"appengine"
"appengine/datastore"
"appengine/delay"
"appengine/mail"
"appengine/taskqueue"
"appengine/urlfetch"
......@@ -105,8 +104,6 @@ func (cl *CL) ModifiedAgo() string {
return "just now"
}
var sendMailLater = delay.Func("send-mail", mail.Send)
func handleAssign(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
......@@ -196,7 +193,9 @@ func handleAssign(w http.ResponseWriter, r *http.Request) {
}
// TODO(dsymonds): Use cl.LastMessageID as the In-Reply-To header
// when the appengine/mail package supports that.
sendMailLater.Call(c, msg)
if err := mail.Send(c, msg); err != nil {
c.Errorf("mail.Send: %v", err)
}
}
}
}
......
......@@ -45,6 +45,12 @@ func handleMail(w http.ResponseWriter, r *http.Request) {
if err != nil && err != datastore.ErrNoSuchEntity {
return err
}
if err == datastore.ErrNoSuchEntity {
// Must set sentinel values for time.Time fields
// if this is a new entity.
cl.Created = time.Unix(0, 0)
cl.Modified = time.Unix(0, 0)
}
cl.LastMessageID = msg.Header.Get("Message-ID")
_, err = datastore.Put(c, key, cl)
return err
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment