public async Task<IActionResult> AddSubscriber(string accountName, long idList, string apiKey, [FromBody] TypeformDTO subscriberDto) { const string HELP_LINK = "https://help.fromdoppler.com/en/how-integrate-doppler-typeform"; if (string.IsNullOrWhiteSpace(accountName)) { _log.LogError("Account Name should not be Null or empty"); return BadRequest(new { ErrorMessage = "An account name must be provided", HelpLink = HELP_LINK }); } if (string.IsNullOrWhiteSpace(apiKey)) { _log.LogError("API Key should not be Null or empty"); return BadRequest(new { ErrorMessage = "An API key must be provided", HelpLink = HELP_LINK }); } try { var itemList = await _dopplerService.GetFields(apiKey, accountName); //we get the user's custom fields var subscriber = _mapper.TypeFormToSubscriberDTO(subscriberDto, itemList); var requestOrigin = "Typeform"; var result = await _dopplerService.CreateNewSubscriberAsync(apiKey, accountName, idList, subscriber, requestOrigin); return result; } catch (Exception ex) { _log.LogError(new EventId(), ex, string.Format("AccountName: {0} | ID_List: {1} | Status: Add subscriber has failed", accountName, idList)); return BadRequest(new { ErrorMessage = ex.Message, StackTrace = ex.StackTrace, HelpLink = HELP_LINK }); } }
public async Task <IActionResult> AddSubscriber(string accountName, long idList, string apiKey, [FromForm] UnbounceDto subscriberDto) { const string HELP_LINK = "https://help.fromdoppler.com/en/how-integrate-doppler-unbounce"; if (string.IsNullOrWhiteSpace(accountName)) { _log.LogError("Account Name should not be Null or empty"); return(BadRequest(new { ErrorMessage = "An account name must be provided", HelpLink = HELP_LINK })); } if (string.IsNullOrWhiteSpace(apiKey)) { _log.LogError("API Key should not be Null or empty"); return(BadRequest(new { ErrorMessage = "An API key must be provided", HelpLink = HELP_LINK })); } var accountN = accountName.Replace(' ', '+'); try { var itemList = await _dopplerService.GetFields(apiKey, accountN); var subscriber = _mapper.ToDopplerSubscriberDto(subscriberDto.DataJSON, itemList); var requestOrigin = "Unbounce"; var result = await _dopplerService.CreateNewSubscriberAsync(apiKey, accountN, idList, subscriber, requestOrigin); return(result); } catch (Exception ex) { _log.LogError(new EventId(), ex, string.Format("AccountName: {0} | ID_List: {1} | Status: Add subscriber has failed", accountN, idList)); return(new BadRequestResult()); } }