sandbox and production clients

This commit is contained in:
Andre Medeiros 2021-07-07 11:37:30 -04:00
parent 989a04da3b
commit 6bd4981201

View file

@ -43,7 +43,8 @@ func accountWorker(id int, rc *reddit.Client, db *sql.DB, logger *log.Logger, st
log.Fatal("token error:", err) log.Fatal("token error:", err)
} }
client := apns2.NewTokenClient(token) sandboxClient := apns2.NewTokenClient(token)
productionClient := apns2.NewTokenClient(token).Production()
for { for {
select { select {
@ -116,9 +117,8 @@ func accountWorker(id int, rc *reddit.Client, db *sql.DB, logger *log.Logger, st
continue continue
} }
devices := []string{}
query = ` query = `
SELECT apns_token FROM devices SELECT apns_token, sandbox FROM devices
LEFT JOIN devices_accounts ON devices.id = devices_accounts.device_id LEFT JOIN devices_accounts ON devices.id = devices_accounts.device_id
WHERE devices_accounts.account_id = $1` WHERE devices_accounts.account_id = $1`
@ -128,18 +128,23 @@ func accountWorker(id int, rc *reddit.Client, db *sql.DB, logger *log.Logger, st
} }
defer rows.Close() defer rows.Close()
devices := []data.Device{}
for rows.Next() { for rows.Next() {
var device string device := data.Device{}
rows.Scan(&device) rows.Scan(&device.APNSToken, &device.Sandbox)
devices = append(devices, device) devices = append(devices, device)
} }
for _, msg := range msgs.MessageListing.Messages { for _, msg := range msgs.MessageListing.Messages {
for _, device := range devices { for _, device := range devices {
notification := &apns2.Notification{} notification := &apns2.Notification{}
notification.DeviceToken = device notification.DeviceToken = device.APNSToken
notification.Topic = "com.christianselig.Apollo" notification.Topic = "com.christianselig.Apollo"
notification.Payload = payload.NewPayload().AlertTitle(msg.Subject).AlertBody(msg.Body) notification.Payload = payload.NewPayload().AlertTitle(msg.Subject).AlertBody(msg.Body)
client := productionClient
if device.Sandbox {
client = sandboxClient
}
t1 := time.Now() t1 := time.Now()
res, err := client.Push(notification) res, err := client.Push(notification)
t2 := time.Now() t2 := time.Now()