nidus-sync/queue/comms.go
Eli Ribble 842e6cff43
Move comms work to background goroutine
This is a sort of random checkpoint of work
 * add schema for tracking messages sent to DB
 * add terms of service and privacy policy for RCS compliance
 * standardize some things about background workers
 * update some missing stuff from generated DB code
2026-01-20 17:10:22 +00:00

38 lines
829 B
Go

package queue
import (
"github.com/Gleipnir-Technology/nidus-sync/db/enums"
"github.com/rs/zerolog/log"
)
type JobEmail struct {
Destination string
Source string
Type enums.CommsEmailmessagetype
}
type JobSMS struct {
Destination string
Source string
Type enums.CommsSmsmessagetype
}
var ChannelJobEmail chan JobEmail
var ChannelJobSMS chan JobSMS
func EnqueueJobEmail(job JobEmail) {
select {
case ChannelJobEmail <- job:
log.Info().Str("destination", job.Destination).Msg("Enqueued email job")
default:
log.Warn().Msg("email job channel is full, dropping job")
}
}
func EnqueueJobSMS(job JobSMS) {
select {
case ChannelJobSMS <- job:
log.Info().Str("destination", job.Destination).Msg("Enqueued sms job")
default:
log.Warn().Msg("sms job channel is full, dropping job")
}
}