diff --git a/RMuseum/Controllers/ContributionStatsController.cs b/RMuseum/Controllers/ContributionStatsController.cs
index 99bc462f..0f0a98c0 100644
--- a/RMuseum/Controllers/ContributionStatsController.cs
+++ b/RMuseum/Controllers/ContributionStatsController.cs
@@ -19,24 +19,73 @@ namespace RMuseum.Controllers
public class ContributionStatsController : Controller
{
///
- /// approved edits daily
+ /// daily stats
///
+ ///
+ /// poem/corrections
+ /// section/corrections
+ /// cat/corrections
+ /// cat/corrections
+ /// suggestedsongs
+ /// quoteds
+ ///
///
///
///
- [HttpGet("poem/corrections/daily")]
+ [HttpGet("{dataType}/daily")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
- public async Task GetApprovedEditsGroupedByDateAsync([FromQuery] PagingParameterModel paging, Guid? userId = null)
+ public async Task GetApprovedEditsGroupedByDateAsync(string dataType, [FromQuery] PagingParameterModel paging, Guid? userId = null)
{
- var cacheKey = $"poem/corrections/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
+ var cacheKey = $"{dataType}/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
{
- var res = await _service.GetApprovedEditsGroupedByDateAsync(paging, userId);
- if (!string.IsNullOrEmpty(res.ExceptionString))
- return BadRequest(res.ExceptionString);
- pagedResult = res.Result;
+ switch (dataType)
+ {
+ case "poem/corrections":
+ {
+ var res = await _service.GetApprovedEditsGroupedByDateAsync(paging, userId);
+ if (!string.IsNullOrEmpty(res.ExceptionString))
+ return BadRequest(res.ExceptionString);
+ pagedResult = res.Result;
+ }
+ break;
+ case "section/corrections":
+ {
+ var res = await _service.GetApprovedSectionEditsGroupedByDateAsync(paging, userId);
+ if (!string.IsNullOrEmpty(res.ExceptionString))
+ return BadRequest(res.ExceptionString);
+ pagedResult = res.Result;
+ }
+ break;
+ case "cat/corrections":
+ {
+ var res = await _service.GetApprovedCatEditsGroupedByDateAsync(paging, userId);
+ if (!string.IsNullOrEmpty(res.ExceptionString))
+ return BadRequest(res.ExceptionString);
+ pagedResult = res.Result;
+ }
+ break;
+ case "suggestedsongs":
+ {
+ var res = await _service.GetApprovedRelatedSongsGroupedByDateAsync(paging, userId);
+ if (!string.IsNullOrEmpty(res.ExceptionString))
+ return BadRequest(res.ExceptionString);
+ pagedResult = res.Result;
+ }
+ break;
+ case "quoteds":
+ {
+ var res = await _service.GetApprovedQuotedPoemsGroupedByDateAsync(paging, userId);
+ if (!string.IsNullOrEmpty(res.ExceptionString))
+ return BadRequest(res.ExceptionString);
+ pagedResult = res.Result;
+ }
+ break;
+ default:
+ return BadRequest("invalid datatype!");
+ }
}
// Paging Header
HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.PagingMeta));
@@ -93,31 +142,6 @@ namespace RMuseum.Controllers
}
- ///
- /// approved section edits daily
- ///
- ///
- ///
- ///
- [HttpGet("section/corrections/daily")]
- [AllowAnonymous]
- [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable))]
- [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
- public async Task GetApprovedSectionEditsGroupedByDateAsync([FromQuery] PagingParameterModel paging, Guid? userId = null)
- {
- var cacheKey = $"section/corrections/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
- if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
- {
- var res = await _service.GetApprovedSectionEditsGroupedByDateAsync(paging, userId);
- if (!string.IsNullOrEmpty(res.ExceptionString))
- return BadRequest(res.ExceptionString);
- pagedResult = res.Result;
- }
- // Paging Header
- HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.PagingMeta));
-
- return Ok(pagedResult.Tracks);
- }
///
/// approved section edits grouped by user
@@ -168,31 +192,7 @@ namespace RMuseum.Controllers
}
- ///
- /// approved cat edits daily
- ///
- ///
- ///
- ///
- [HttpGet("cat/corrections/daily")]
- [AllowAnonymous]
- [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable))]
- [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
- public async Task GetApprovedCatEditsGroupedByDateAsync([FromQuery] PagingParameterModel paging, Guid? userId = null)
- {
- var cacheKey = $"cat/corrections/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
- if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
- {
- var res = await _service.GetApprovedCatEditsGroupedByDateAsync(paging, userId);
- if (!string.IsNullOrEmpty(res.ExceptionString))
- return BadRequest(res.ExceptionString);
- pagedResult = res.Result;
- }
- // Paging Header
- HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.PagingMeta));
-
- return Ok(pagedResult.Tracks);
- }
+
///
/// approved cat edits grouped by user
@@ -242,31 +242,7 @@ namespace RMuseum.Controllers
return Ok(result);
}
- ///
- /// approved related songs daily
- ///
- ///
- ///
- ///
- [HttpGet("suggestedsongs/daily")]
- [AllowAnonymous]
- [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable))]
- [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
- public async Task GetApprovedRelatedSongsGroupedByDateAsync([FromQuery] PagingParameterModel paging, Guid? userId = null)
- {
- var cacheKey = $"suggestedsongs/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
- if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
- {
- var res = await _service.GetApprovedRelatedSongsGroupedByDateAsync(paging, userId);
- if (!string.IsNullOrEmpty(res.ExceptionString))
- return BadRequest(res.ExceptionString);
- pagedResult = res.Result;
- }
- // Paging Header
- HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.PagingMeta));
-
- return Ok(pagedResult.Tracks);
- }
+
///
/// approved related songs grouped by user
@@ -316,31 +292,7 @@ namespace RMuseum.Controllers
return Ok(result);
}
- ///
- /// approved quoted poems daily
- ///
- ///
- ///
- ///
- [HttpGet("quoteds/daily")]
- [AllowAnonymous]
- [ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable))]
- [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
- public async Task GetApprovedQuotedPoemsGroupedByDateAsync([FromQuery] PagingParameterModel paging, Guid? userId = null)
- {
- var cacheKey = $"quoteds/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
- if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
- {
- var res = await _service.GetApprovedQuotedPoemsGroupedByDateAsync(paging, userId);
- if (!string.IsNullOrEmpty(res.ExceptionString))
- return BadRequest(res.ExceptionString);
- pagedResult = res.Result;
- }
- // Paging Header
- HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.PagingMeta));
-
- return Ok(pagedResult.Tracks);
- }
+
///
/// approved quoted poems grouped by user
diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml
index d1b15970..fb0f298d 100644
--- a/RMuseum/RMuseum.xml
+++ b/RMuseum/RMuseum.xml
@@ -762,10 +762,18 @@
-
+
- approved edits daily
+ daily stats
+
+ poem/corrections
+ section/corrections
+ cat/corrections
+ cat/corrections
+ suggestedsongs
+ quoteds
+
@@ -785,14 +793,6 @@
-
-
- approved section edits daily
-
-
-
-
-
approved section edits grouped by user
@@ -808,14 +808,6 @@
-
-
- approved cat edits daily
-
-
-
-
-
approved cat edits grouped by user
@@ -831,14 +823,6 @@
-
-
- approved related songs daily
-
-
-
-
-
approved related songs grouped by user
@@ -854,14 +838,6 @@
-
-
- approved quoted poems daily
-
-
-
-
-
approved quoted poems grouped by user