public async Task <IActionResult> SendSMS([FromBody] CustomSMSViewModel model) { bool success = Phone.TryParse(model.Phone, Core.REGION, out PhoneNumber phone); if (!success) { return(BadRequest("The inputed phone number was invalid")); } if (!Phone.IsValidNumber(phone)) { return(BadRequest("The inputed phone number was invalid")); } success = await SmsService.SendMessage(model.Phone, model.Message); return(Ok()); }
public async Task <IActionResult> GeneratePasswordResetSms([FromBody] CustomSMSViewModel model) { User user = await DataContext.Store.GetOneAsync <User>(u => u.PhoneNumber == model.Phone); if (user == null) { return(NotFound($"No User with that phone number could be found on this platform.")); } string message = model.Message; OneTimePassword password = null; try { password = await Auth.GenerateOneTimePassword(user, OnePasswordType.Phone); UserOneTimePasswordModel context = Mapper.Map <UserOneTimePasswordModel>(user); context.OneTimePassword = password.Code; message = message.BindTo(context); Logger.LogWarning(user.FormattedPhoneNumber); Logger.LogWarning(message); } catch (Exception ex) { Logger.LogError(ex, "An error occured while formatting a text message\n{0}", message); return(BadRequest("The format of the text message is invalid")); } bool success = await SmsService.SendMessage(user.FormattedPhoneNumber, message); if (!success) { return(BadRequest("An error occured while sending the password reset text message")); } return(Ok(Mapper.Map <OneTimePasswordViewModel>(password))); }