Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion Doppler.ReportingApi/Controllers/SummaryController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public class SummaryController
private readonly ILogger _logger;
private readonly ISummaryRepository _summaryRepository;

public SummaryController(ILogger<SummaryController> logger, ISummaryRepository summaryRepository)
public SummaryController(
ILogger<SummaryController> logger,
ISummaryRepository summaryRepository)
{
_logger = logger;
_summaryRepository = summaryRepository;
Expand Down Expand Up @@ -121,6 +123,26 @@ public async Task<IActionResult> GetSubscribersDashboard(string accountName, [Fr
return new OkObjectResult(result);
}

[HttpGet]
[Route("{accountName}/dashboard/subscribers/sources")]
[ProducesResponseType(typeof(IEnumerable<SourceWithSubscribersCount>), 200)]
[Produces("application/json")]
[Authorize(Policies.OWN_RESOURCE_OR_SUPERUSER)]
public async Task<IActionResult> GetSourcesWithSubscribersCount(string accountName, [FromQuery] BasicDateFilter dateFilter)
{
if (!dateFilter.StartDate.HasValue || !dateFilter.EndDate.HasValue)
{
return new BadRequestObjectResult("StartDate and EndDate are required fields");
}

var startDate = dateFilter.StartDate.Value.UtcDateTime;
var endDate = dateFilter.EndDate.Value.UtcDateTime;

var result = await _summaryRepository.GetSourcesWithSubscribersCountAsync(accountName, startDate, endDate);

return new OkObjectResult(result);
}

#endregion Audience

#region Email Campaign
Expand Down
1 change: 1 addition & 0 deletions Doppler.ReportingApi/Infrastructure/ISummaryRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public interface ISummaryRepository
Task<SubscribersSummary> GetSubscribersSummaryByUserAsync(string userName, DateTime startDate, DateTime endDate);
Task<IEnumerable<AssistedSalesSummaryItem>> GetAssistedSalesAsync(string accountName, DateTime startDate, DateTime endDate);
Task<IEnumerable<SubscriberStatusStat>> GetSubscribersDashboardByUserAsync(string userName, DateTime startDate, DateTime endDate);
Task<IEnumerable<SourceWithSubscribersCount>> GetSourcesWithSubscribersCountAsync(string accountName, DateTime startDate, DateTime endDate);
Task<IEnumerable<EmailCampaignDashboardItem>> GetEmailCampaignsAsync(string accountName, DateTime startDate, DateTime endDate, string campaignType);
Task<WebsiteActivityRfmDashboard> GetWebsiteActivityRfmAsync(string accountName);
Task<SystemUsageSummary> GetSystemUsageAsync(string accountName);
Expand Down
42 changes: 42 additions & 0 deletions Doppler.ReportingApi/Infrastructure/SummaryRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,48 @@ FROM SubscriberStatusStat
}
}

public Task<IEnumerable<SourceWithSubscribersCount>> GetSourcesWithSubscribersCountAsync(
string accountName,
DateTime startDate,
DateTime endDate)
{
IEnumerable<SourceWithSubscribersCount> result = new[]
{
new SourceWithSubscribersCount { Source = "Manual", Amount = 12 },
new SourceWithSubscribersCount { Source = "Importado", Amount = 340 },
new SourceWithSubscribersCount { Source = "Formulario", Amount = 58 },
new SourceWithSubscribersCount { Source = "MercadoShops", Amount = 1024 },
new SourceWithSubscribersCount { Source = "RestAPI", Amount = 7 },
new SourceWithSubscribersCount { Source = "TokkoBroker", Amount = 215 },
new SourceWithSubscribersCount { Source = "Tiendanube", Amount = 100 },
new SourceWithSubscribersCount { Source = "DataHub", Amount = 4321 },
new SourceWithSubscribersCount { Source = "VTEX", Amount = 89 },
new SourceWithSubscribersCount { Source = "Shopify", Amount = 15678 },
new SourceWithSubscribersCount { Source = "Magento", Amount = 245 },
new SourceWithSubscribersCount { Source = "Wordpress", Amount = 31 },
new SourceWithSubscribersCount { Source = "Unbounce", Amount = 908 },
new SourceWithSubscribersCount { Source = "PrestaShop", Amount = 67 },
new SourceWithSubscribersCount { Source = "WooCommerce", Amount = 5400 },
new SourceWithSubscribersCount { Source = "LearnPress", Amount = 14 },
new SourceWithSubscribersCount { Source = "CRM2go", Amount = 2750 },
new SourceWithSubscribersCount { Source = "Zoho", Amount = 620 },
new SourceWithSubscribersCount { Source = "PieSync", Amount = 45 },
new SourceWithSubscribersCount { Source = "Easycommerce", Amount = 1330 },
new SourceWithSubscribersCount { Source = "ELAGestion", Amount = 26 },
new SourceWithSubscribersCount { Source = "BMW RSP CRM", Amount = 9999 },
new SourceWithSubscribersCount { Source = "MiTienda", Amount = 73 },
new SourceWithSubscribersCount { Source = "TiendUp", Amount = 1840 },
new SourceWithSubscribersCount { Source = "Jumpseller", Amount = 52 },
new SourceWithSubscribersCount { Source = "Conversaciones", Amount = 410 },
new SourceWithSubscribersCount { Source = "Landing Page", Amount = 3050 },
new SourceWithSubscribersCount { Source = "Empretienda", Amount = 120 },
new SourceWithSubscribersCount { Source = "OnSite", Amount = 8700 },
new SourceWithSubscribersCount { Source = "TiendaNegocio", Amount = 5 },
};

return Task.FromResult(result);
}

#endregion Audience

#region Email Campaign
Expand Down
9 changes: 9 additions & 0 deletions Doppler.ReportingApi/Models/SourceWithSubscribersCount.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Doppler.ReportingApi.Models
{
public class SourceWithSubscribersCount
{
public string Source { get; set; }

public int Amount { get; set; }
}
}
Loading