@@ -30,56 +30,88 @@ public SustainabilityWorkspaceController(
30
30
}
31
31
32
32
[ 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 )
35
36
{
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 ) )
39
38
{
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 ) ;
41
54
}
42
55
43
- var sustainabilityData = JsonSerializer . Deserialize < SustainabilityResponse > ( mostRecent . PageData ) ;
44
- return Ok ( sustainabilityData ) ;
56
+ return NoContent ( ) ;
45
57
}
46
58
47
59
[ 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 )
49
63
{
50
- var contentItem = _contentQuery . Content ( pageId ) ;
51
- if ( contentItem == null )
64
+ if ( Guid . TryParse ( pageGuid , out Guid guid ) )
52
65
{
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
+ }
55
71
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
+ }
58
77
59
- return Ok ( sustainabilityData ) ;
78
+ return NoContent ( ) ;
60
79
}
61
80
62
81
[ 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 )
64
84
{
65
85
if ( data . TotalSize == 0 )
66
86
{
67
- return Ok ( "Missing data to update" ) ;
87
+ return Ok ( false ) ;
68
88
}
69
89
70
- var pageMetric = new PageMetric ( )
90
+ if ( Guid . TryParse ( pageGuid , out Guid guid ) )
71
91
{
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 ) ;
83
115
}
84
116
}
85
117
}
0 commit comments