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));
            }
        }
Esempio n. 2
0
        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));
            }
        }