Boa noite, pessoal.
Eu estou com dificuldade em disparar e-mails a partir da classe de domínio. Basicamente eu queria colocar no afterInsert(){...} um gatilho para disparar um e-mail, mas não estou conseguindo e também não achei a solução na internet. O "estranho" é que quando eu disparo de um controller ele vai belezinha, mas eu não queria deixar dentro do save() esse gatilho.
Estou usando o plugin asynchronous-mail (http://plugins.grails.org/plugin/kefirsf/asynchronous-mail) e minha classe de domínio:
import grails.plugin.asyncmail.AsynchronousMailService
class Domain {
String attributo1
String attributo2
(...)
AsynchronousMailService asynchronousMailService
static transients = ['asynchronousMailService']
(...)
def afterInsert(){
asynchronousMailService.sendMail {to... from.. subject.. etc}
}
}
Estou meio que na tentativa e errosssssss. Tentei deixar explícito que o serviço era transient, também tentei fazer com "this.asynchronousMailService.sendMail {to... from.. subject.. etc}"
O código dá pau bem na linha
? asynchronousMailService.sendMail {
Mas o erro é de asserção por causa do afterInsert().. não ajuda muito.
Eu estou fazendo burrada tentando usar um serviço de dentro de uma domain? Uma vez eu vi um exemplo que o cara tinha um serviço de validação que ele usava dentro da domain, então achei que ia ser fácil. Como disse antes, quando eu disparo de um controller funciona bala.
Obrigado!