/// <summary> /// Create recipient with first name, last name, and email. /// </summary> /// <param name="recipientCreateRequest"> /// request object that contains the parameters for using the api method of Interchecks Api Create Recipients /// </param> /// <returns> /// response object Recipient Created /// </returns> public async Task <RecipientDTO> CreateRecipient(RecipientCreateRequest recipientCreateRequest) { if (recipientCreateRequest == null) { throw new ArgumentNullException(nameof(recipientCreateRequest)); } else { var urlRequest = $"{_interchecksApiSettings.Value.ApiRecipientsCreateCall}/{_interchecksApiSettings.Value.PayerId}"; HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(recipientCreateRequest).ToString(), Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync(urlRequest, httpContent); if (response.IsSuccessStatusCode) { RecipientDTO recipientDTO = JsonConvert.DeserializeObject <RecipientDTO>(response.Content.ReadAsStringAsync().Result); return(recipientDTO); } else { string respError = response.Content.ReadAsStringAsync().Result; InterchecksApiError apiError = JsonConvert.DeserializeObject <InterchecksApiError>(respError); _logger.LogError($"Interchecks Api Error, Error Code:{apiError.ErrorCode}:{apiError.ErrorMessage}"); return((RecipientDTO)IntercheckApiErrorHandler.Handle(apiError)); } } }
/// <summary> /// First search a recipient by email, if Recimpient doesn't exist then /// this method create a recipient with first name, last name, and email /// if Recimpient does exist will be returned /// </summary> /// <param name="recipientCreateRequest"> /// request object that contains the parameters for using the api method of Interchecks Api Search and Create Recipients /// </param> /// <returns> /// response object Recipient Searched or Created /// </returns> public async Task <RecipientDTO> CreateIntegralRecipient(RecipientCreateRequest recipientCreateRequest) { if (recipientCreateRequest == null) { throw new ArgumentNullException(nameof(recipientCreateRequest)); } else { RecipientSearchRequest recipientSearchRequest = _mapper.Map <RecipientSearchRequest>(recipientCreateRequest); RecipientDTO recipientSearched = await this.SearchRecipient(recipientSearchRequest); if (recipientSearched == null) { RecipientDTO recipientCreated = await this.CreateRecipient(recipientCreateRequest); return(recipientCreated); } else { return(recipientSearched); } } }
public async Task <IActionResult> CreateIntegralRecipient(RecipientCreateRequest recipientCreateRequest) { var recipientDTO = await _recipientsService.CreateIntegralRecipient(recipientCreateRequest); return(Ok(recipientDTO)); }