Skip to content

Commit a2718f8

Browse files
Finish off Umbraco 14 build
1 parent 9f6770d commit a2718f8

38 files changed

+1474
-2734
lines changed

src/Umbraco.Community.Sustainability/Controllers/SustainabilityWorkspaceController.cs

Lines changed: 62 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,56 +30,88 @@ public SustainabilityWorkspaceController(
3030
}
3131

3232
[HttpGet("getPageData")]
33-
[ProducesResponseType(typeof(string), 200)]
34-
public async Task<IActionResult> GetPageData([FromQuery] int pageId)
33+
[ProducesResponseType(typeof(SustainabilityResponse), 200)]
34+
[ProducesResponseType(typeof(string), 204)]
35+
public async Task<IActionResult> GetPageData([FromQuery] string pageGuid)
3536
{
36-
var pageMetrics = await _pageMetricService.GetPageMetrics(pageId);
37-
var mostRecent = pageMetrics.OrderByDescending(x => x.RequestDate).FirstOrDefault();
38-
if (mostRecent?.PageData == null)
37+
if (Guid.TryParse(pageGuid, out Guid guid))
3938
{
40-
return Ok("No recent data found");
39+
var contentItem = _contentQuery.Content(guid);
40+
if (contentItem == null)
41+
{
42+
return NoContent();
43+
}
44+
45+
var pageMetrics = await _pageMetricService.GetPageMetrics(contentItem.Id);
46+
var mostRecent = pageMetrics.OrderByDescending(x => x.RequestDate).FirstOrDefault();
47+
if (mostRecent?.PageData == null)
48+
{
49+
return NoContent();
50+
}
51+
52+
var sustainabilityData = JsonSerializer.Deserialize<SustainabilityResponse>(mostRecent.PageData);
53+
return Ok(sustainabilityData);
4154
}
4255

43-
var sustainabilityData = JsonSerializer.Deserialize<SustainabilityResponse>(mostRecent.PageData);
44-
return Ok(sustainabilityData);
56+
return NoContent();
4557
}
4658

4759
[HttpGet("checkPage")]
48-
public async Task<IActionResult> CheckPage([FromQuery] int pageId)
60+
[ProducesResponseType(typeof(SustainabilityResponse), 200)]
61+
[ProducesResponseType(typeof(string), 204)]
62+
public async Task<IActionResult> CheckPage([FromQuery] string pageGuid)
4963
{
50-
var contentItem = _contentQuery.Content(pageId);
51-
if (contentItem == null)
64+
if (Guid.TryParse(pageGuid, out Guid guid))
5265
{
53-
return Ok("Page not found");
54-
}
66+
var contentItem = _contentQuery.Content(guid);
67+
if (contentItem == null)
68+
{
69+
return Ok("Page not found");
70+
}
5571

56-
var url = contentItem.Url(mode: UrlMode.Absolute);
57-
var sustainabilityData = await _sustainabilityService.GetSustainabilityData(url);
72+
var url = contentItem.Url(mode: UrlMode.Absolute);
73+
var sustainabilityData = await _sustainabilityService.GetSustainabilityData(url);
74+
75+
return Ok(sustainabilityData);
76+
}
5877

59-
return Ok(sustainabilityData);
78+
return NoContent();
6079
}
6180

6281
[HttpPost("savePageData")]
63-
public async Task<IActionResult> SavePageData([FromQuery] int pageId, [FromBody] SustainabilityResponse data)
82+
[ProducesResponseType(typeof(bool), 200)]
83+
public async Task<IActionResult> SavePageData([FromQuery] string pageGuid, [FromBody] SustainabilityResponse data)
6484
{
6585
if (data.TotalSize == 0)
6686
{
67-
return Ok("Missing data to update");
87+
return Ok(false);
6888
}
6989

70-
var pageMetric = new PageMetric()
90+
if (Guid.TryParse(pageGuid, out Guid guid))
7191
{
72-
NodeId = pageId,
73-
RequestedBy = "Admin",
74-
RequestDate = data.LastRunDate,
75-
TotalSize = data.TotalSize,
76-
TotalEmissions = Convert.ToDecimal(data.TotalEmissions),
77-
CarbonRating = data.CarbonRating,
78-
PageData = JsonSerializer.Serialize(data),
79-
};
80-
81-
await _pageMetricService.AddPageMetric(pageMetric);
82-
return Ok(true);
92+
var contentItem = _contentQuery.Content(guid);
93+
94+
if (contentItem == null)
95+
{
96+
return Ok(false);
97+
}
98+
99+
var pageMetric = new PageMetric()
100+
{
101+
NodeId = contentItem.Id,
102+
RequestedBy = "Admin",
103+
RequestDate = data.LastRunDate,
104+
TotalSize = data.TotalSize,
105+
TotalEmissions = Convert.ToDecimal(data.TotalEmissions),
106+
CarbonRating = data.CarbonRating,
107+
PageData = JsonSerializer.Serialize(data),
108+
};
109+
110+
await _pageMetricService.AddPageMetric(pageMetric);
111+
return Ok(true);
112+
}
113+
114+
return Ok(false);
83115
}
84116
}
85117
}

0 commit comments

Comments
 (0)