From dd693323d7392ee5fc7ee87a54dbe762370d0cc3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sun, 21 Jan 2024 17:56:03 -0700 Subject: [PATCH] added Gas Post API. --- Controllers/APIController.cs | 52 ++++++++++++++++++++++++++++++++++++ Views/API/Index.cshtml | 24 +++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/Controllers/APIController.cs b/Controllers/APIController.cs index 5ac757e..4c008cd 100644 --- a/Controllers/APIController.cs +++ b/Controllers/APIController.cs @@ -365,6 +365,58 @@ namespace CarCareTracker.Controllers return Json(result); } [TypeFilter(typeof(CollaboratorFilter))] + [HttpPost] + [Route("/api/vehicle/gasrecords/add")] + public IActionResult AddGasRecord(int vehicleId, GasRecordExportModel input) + { + var response = new OperationResponse(); + if (vehicleId == default) + { + response.Success = false; + response.Message = "Must provide a valid vehicle id"; + Response.StatusCode = 400; + return Json(response); + } + if (string.IsNullOrWhiteSpace(input.Date) || + string.IsNullOrWhiteSpace(input.Odometer) || + string.IsNullOrWhiteSpace(input.FuelConsumed) || + string.IsNullOrWhiteSpace(input.Cost) || + string.IsNullOrWhiteSpace(input.IsFillToFull) || + string.IsNullOrWhiteSpace(input.MissedFuelUp) + ) + { + response.Success = false; + response.Message = "Input object invalid, Date, Odometer, FuelConsumed, IsFillToFull, MissedFuelUp, and Cost cannot be empty."; + Response.StatusCode = 400; + return Json(response); + } + try + { + var gasRecord = new GasRecord() + { + VehicleId = vehicleId, + Date = DateTime.Parse(input.Date), + Mileage = int.Parse(input.Odometer), + Gallons = decimal.Parse(input.FuelConsumed), + IsFillToFull = bool.Parse(input.IsFillToFull), + MissedFuelUp = bool.Parse(input.MissedFuelUp), + Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes, + Cost = decimal.Parse(input.Cost) + }; + _gasRecordDataAccess.SaveGasRecordToVehicle(gasRecord); + response.Success = true; + response.Message = "Gas Record Added"; + return Json(response); + } + catch (Exception ex) + { + response.Success = false; + response.Message = ex.Message; + Response.StatusCode = 500; + return Json(response); + } + } + [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] [Route("/api/vehicle/reminders")] public IActionResult Reminders(int vehicleId) diff --git a/Views/API/Index.cshtml b/Views/API/Index.cshtml index 1352e25..b16e47b 100644 --- a/Views/API/Index.cshtml +++ b/Views/API/Index.cshtml @@ -201,6 +201,30 @@ useUKMPG(bool) - Use UK Imperial Calculation +
+
+ POST +
+
+ /api/vehicle/gasrecords/add +
+
+ Adds Gas Record to the vehicle +
+
+ vehicleId - Id of Vehicle +
+ Body(form-data): {
+ date - Date to be entered
+ odometer - Odometer reading
+ fuelConsumed - Fuel Consumed
+ cost - Cost
+ isFillToFull(bool) - Filled To Full
+ missedFuelUp(bool) - Missed Fuel Up
+ notes - notes(optional)
+ } +
+
GET