1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-23 01:20:11 +00:00

use goroutines for (most) emails

invite emails have been left alone so that email success message is
shown on web ui
This commit is contained in:
Harvey Tindall 2020-08-02 17:17:29 +01:00
parent 699489e435
commit f0be006e16

6
api.go
View File

@ -92,6 +92,7 @@ func (ctx *appContext) checkInvites() {
ctx.debug.Printf("%s: Expiry notification", code) ctx.debug.Printf("%s: Expiry notification", code)
for address, settings := range notify { for address, settings := range notify {
if settings["notify-expiry"] { if settings["notify-expiry"] {
go func() {
if ctx.email.constructExpiry(code, data, ctx) != nil { if ctx.email.constructExpiry(code, data, ctx) != nil {
ctx.err.Printf("%s: Failed to construct expiry notification", code) ctx.err.Printf("%s: Failed to construct expiry notification", code)
} else if ctx.email.send(address, ctx) != nil { } else if ctx.email.send(address, ctx) != nil {
@ -99,6 +100,7 @@ func (ctx *appContext) checkInvites() {
} else { } else {
ctx.info.Printf("Sent expiry notification to %s", address) ctx.info.Printf("Sent expiry notification to %s", address)
} }
}()
} }
} }
} }
@ -124,6 +126,7 @@ func (ctx *appContext) checkInvite(code string, used bool, username string) bool
ctx.debug.Printf("%s: Expiry notification", code) ctx.debug.Printf("%s: Expiry notification", code)
for address, settings := range notify { for address, settings := range notify {
if settings["notify-expiry"] { if settings["notify-expiry"] {
go func() {
if ctx.email.constructExpiry(code, inv, ctx) != nil { if ctx.email.constructExpiry(code, inv, ctx) != nil {
ctx.err.Printf("%s: Failed to construct expiry notification", code) ctx.err.Printf("%s: Failed to construct expiry notification", code)
} else if ctx.email.send(address, ctx) != nil { } else if ctx.email.send(address, ctx) != nil {
@ -131,6 +134,7 @@ func (ctx *appContext) checkInvite(code string, used bool, username string) bool
} else { } else {
ctx.info.Printf("Sent expiry notification to %s", address) ctx.info.Printf("Sent expiry notification to %s", address)
} }
}()
} }
} }
} }
@ -212,6 +216,7 @@ func (ctx *appContext) NewUser(gc *gin.Context) {
if ctx.config.Section("notifications").Key("enabled").MustBool(false) { if ctx.config.Section("notifications").Key("enabled").MustBool(false) {
for address, settings := range invite.Notify { for address, settings := range invite.Notify {
if settings["notify-creation"] { if settings["notify-creation"] {
go func() {
if ctx.email.constructCreated(req.Code, req.Username, req.Email, invite, ctx) != nil { if ctx.email.constructCreated(req.Code, req.Username, req.Email, invite, ctx) != nil {
ctx.err.Printf("%s: Failed to construct user creation notification", req.Code) ctx.err.Printf("%s: Failed to construct user creation notification", req.Code)
ctx.debug.Printf("%s: Error: %s", req.Code, err) ctx.debug.Printf("%s: Error: %s", req.Code, err)
@ -221,6 +226,7 @@ func (ctx *appContext) NewUser(gc *gin.Context) {
} else { } else {
ctx.info.Printf("%s: Sent user creation notification to %s", req.Code, address) ctx.info.Printf("%s: Sent user creation notification to %s", req.Code, address)
} }
}()
} }
} }
} }