diff options
author | marcinzelent <zelent.marcin@gmail.com> | 2018-03-16 21:40:28 +0100 |
---|---|---|
committer | marcinzelent <zelent.marcin@gmail.com> | 2018-03-16 21:40:28 +0100 |
commit | 08e7a82cc7b237e550c0236bebd4f41c3c3f4acf (patch) | |
tree | 30e2320d62f2bf3981120ad76f2de92efec1e8f5 /pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs | |
parent | 9441b9d8b3035dc3142234dd13a1bcea21e72749 (diff) |
Moved API to separate folder.
Diffstat (limited to 'pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs')
-rw-r--r-- | pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs b/pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs new file mode 100644 index 0000000..adf4d5d --- /dev/null +++ b/pollutometer-api/PollutometerWebApi/Controllers/ReadingsController.cs @@ -0,0 +1,85 @@ +using System;
+using System.Web.Http;
+using PollutometerWebApi.Models;
+
+namespace PollutometerWebApi.Controllers
+{
+ public class ReadingsController : ApiController
+ {
+ public ReadingsController() {}
+
+ public IHttpActionResult GetAllReadings()
+ {
+ var command = "SELECT * FROM Readings";
+ var readings = SqlOperator.GetReadings(command);
+
+ if (readings.Count > 0) return Ok(readings);
+ else return NotFound();
+ }
+
+ public IHttpActionResult GetReading(int id)
+ {
+ var command = $"SELECT * FROM Readings WHERE Id={id}";
+ var readings = SqlOperator.GetReadings(command);
+
+ if (readings.Count == 1) return Ok(readings[0]);
+ else return NotFound();
+ }
+
+ [Route("api/Readings/latest")]
+ public IHttpActionResult GetLatestReading()
+ {
+ var command = "SELECT * FROM Readings " +
+ "WHERE TimeStamp IN(SELECT MAX(TimeStamp) FROM Readings)";
+ var reading = SqlOperator.GetReadings(command)[0];
+
+ if (reading != null) return Ok(reading);
+ else return NotFound();
+ }
+
+ [Route("api/Readings/lastweek")]
+ public IHttpActionResult GetReadingsFromLastWeek()
+ {
+ var timeNow = DateTimeOffset.Now.ToUnixTimeSeconds();
+ var command = "SELECT * FROM Readings " +
+ $"WHERE TimeStamp BETWEEN {timeNow-7*24*3600} AND {timeNow}";
+ var readings = SqlOperator.GetReadings(command);
+
+ if (readings.Count > 0) return Ok(readings);
+ else return NotFound();
+ }
+
+ public IHttpActionResult PutReading(int id, Reading reading)
+ {
+ if (reading != null)
+ {
+ SqlOperator.PutReading(id, reading);
+ return Ok();
+ }
+ else return BadRequest();
+ }
+
+ public IHttpActionResult PostReading(Reading reading)
+ {
+ if (reading != null)
+ {
+ SqlOperator.PostReading(reading);
+ var aqi = AqiCalculator.CalculateAqi(reading);
+ if (aqi.Value >= 151)
+ EmailSender.SendEmail(aqi);
+ return Ok(reading);
+ }
+ else return BadRequest();
+ }
+
+ public IHttpActionResult DeleteReading(int id)
+ {
+ var command = $"SELECT * FROM Readings WHERE Id={id}";
+ var readings = SqlOperator.GetReadings(command);
+ if (readings.Count == 0) return NotFound();
+ SqlOperator.DeleteReading(id);
+
+ return Ok(readings[0]);
+ }
+ }
+}
\ No newline at end of file |