parcoursmob/core/application/sms.go

42 lines
944 B
Go

package application
import (
"context"
"errors"
"github.com/rs/zerolog/log"
)
func (h *ApplicationHandler) SendSMS(ctx context.Context, beneficiaryID, message string) error {
return h.GenerateSMS(beneficiaryID, message)
}
func (h *ApplicationHandler) GenerateSMS(recipientid string, message string) error {
recipient, err := h.services.GetAccount(recipientid)
if err != nil {
log.Error().Err(err).Msg("user not found")
return err
}
pn, ok := recipient.Data["phone_number"]
if !ok {
log.Error().Msg("Beneficiary doesn't have a phone number")
return errors.New("missing phone number")
}
phoneNumber, ok := pn.(string)
if !ok {
log.Error().Msg("phone number type error")
return errors.New("phone number type error")
}
sender := h.config.GetString("service_name")
err = h.services.SMS.Send(phoneNumber, message, sender)
if err != nil {
log.Error().Err(err).Msg("cannot send SMS")
return err
}
return nil
}