public async Task <ReturnObject <LeadsPaginatedReturnDTO> > GetLeads(FetchLeadParams fetchObj) { try { // sanitize parameters // make an Sierra API request to create lead using (var client = new HttpClient()) { client.BaseAddress = new Uri(_sierraConfig.Value.BaseUrl); client.DefaultRequestHeaders.Add("Sierra-ApiKey", _sierraConfig.Value.APIKey); var httpResponse = await client.GetAsync($"{apiName}/find?leadStatus=AllExceptDeleted&name={fetchObj.Name}&email={fetchObj.Email}&phone={fetchObj.Phone}&sortColumn=RegisteredDate&sortOrder=desc&pageSize={fetchObj.PageSize}&pageNumber={fetchObj.PageNumber}"); var responseContent = await httpResponse.Content.ReadAsStringAsync(); var apiResponseObj = JsonConvert.DeserializeObject <GetLeadsReturnDTO>(responseContent); if (!apiResponseObj.Success) { return(ReturnHandler <LeadsPaginatedReturnDTO> .GetReturnObject(true, null, apiResponseObj.ErrorMessage, null)); } var leadsData = _mapper.Map <LeadsPaginatedReturnDTO>(apiResponseObj.Data); return(ReturnHandler <LeadsPaginatedReturnDTO> .GetReturnObject(false, null, "Leads fetched successfully.", leadsData)); } } catch (Exception ex) { var error = new Error("", ex.Message, ErrorTypeKeys.ServiceError.ToString()); return(ReturnHandler <LeadsPaginatedReturnDTO> .GetReturnObject(true, error, "Some Error occurred while fetching leads.", null)); } }
public async Task <IActionResult> Get(string name, string phone, string email, int?pageNumber = 1, int?pageSize = 25) { try { var filterObj = new FetchLeadParams() { Name = name, Phone = phone, Email = email, PageNumber = (int)pageNumber, PageSize = (int)pageSize }; var createdLeadObj = await _leadsService.GetLeads(filterObj); if (createdLeadObj.IsError) { return(BadRequest(createdLeadObj)); } return(Ok(createdLeadObj)); } catch (Exception ex) { var error = new Error("", ex.Message, ErrorTypeKeys.EndpointError.ToString()); return(BadRequest(ex.Message)); } }