add emails to lnurlw & lnurlp

This commit is contained in:
Peter Rounce 2022-09-20 02:59:14 +00:00
parent 8d01474d5f
commit a42feca90d
8 changed files with 594 additions and 16 deletions

View file

@ -114,7 +114,7 @@ func monitor_invoice_state(r_hash []byte) () {
ln_port, err := strconv.Atoi(os.Getenv("LN_PORT"))
if err != nil {
//TODO deal with err
log.Warn(err)
return
}
@ -129,9 +129,12 @@ func monitor_invoice_state(r_hash []byte) () {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
//TODO deal with err
stream, _ := i_client.SubscribeSingleInvoice(ctx, &invoicesrpc.SubscribeSingleInvoiceRequest{
stream, err := i_client.SubscribeSingleInvoice(ctx, &invoicesrpc.SubscribeSingleInvoiceRequest{
RHash: r_hash})
if err != nil {
log.WithFields(log.Fields{"r_hash": hex.EncodeToString(r_hash)}).Warn(err)
return
}
for {
update, err := stream.Recv()
@ -141,7 +144,7 @@ func monitor_invoice_state(r_hash []byte) () {
}
if err != nil {
//TODO deal with err
log.WithFields(log.Fields{"r_hash": hex.EncodeToString(r_hash)}).Warn(err)
return
}
@ -158,6 +161,29 @@ func monitor_invoice_state(r_hash []byte) () {
connection.Close()
// send email
card_id, err := db_get_card_id_for_r_hash(hex.EncodeToString(r_hash))
if err != nil {
log.WithFields(log.Fields{"r_hash": hex.EncodeToString(r_hash)}).Warn(err)
return
}
log.WithFields(log.Fields{"r_hash": hex.EncodeToString(r_hash), "card_id": card_id}).Debug("card found")
c, err := db_get_card_from_card_id(card_id)
if err != nil {
log.WithFields(log.Fields{"r_hash": hex.EncodeToString(r_hash)}).Warn(err)
return
}
if c.email_enable != "Y" {
log.Debug("email is not enabled for the card")
return
}
go send_email(c.email_address, "bolt card receipt", "html body", "text body")
return
}
@ -231,5 +257,28 @@ func pay_invoice(card_payment_id int, invoice string) {
connection.Close()
// send email
card_id, err := db_get_card_id_for_card_payment_id(card_payment_id)
if err != nil {
log.WithFields(log.Fields{"card_payment_id": card_payment_id}).Warn(err)
return
}
log.WithFields(log.Fields{"card_payment_id": card_payment_id, "card_id": card_id}).Debug("card found")
c, err := db_get_card_from_card_id(card_id)
if err != nil {
log.WithFields(log.Fields{"card_payment_id": card_payment_id}).Warn(err)
return
}
if c.email_enable != "Y" {
log.Debug("email is not enabled for the card")
return
}
go send_email(c.email_address, "bolt card payment", "html body", "text body")
return
}