From 900951b1a7f17ba4e866694b49ff08c76c99a28d Mon Sep 17 00:00:00 2001 From: hz Date: Wed, 21 Jan 2026 17:43:39 -0600 Subject: [PATCH] Location fixes --- microservices/LocationsApi/Controllers/LocationsController.cs | 4 ++++ microservices/LocationsApi/Models/Coord.cs | 4 ++++ microservices/LocationsApi/Models/Location.cs | 3 +++ 3 files changed, 11 insertions(+) diff --git a/microservices/LocationsApi/Controllers/LocationsController.cs b/microservices/LocationsApi/Controllers/LocationsController.cs index 75a11d3..6c9886f 100644 --- a/microservices/LocationsApi/Controllers/LocationsController.cs +++ b/microservices/LocationsApi/Controllers/LocationsController.cs @@ -42,6 +42,10 @@ public class LocationsController : ControllerBase { return Conflict("Coord must be unique"); } + catch (MongoWriteException ex) when (ex.WriteError.Code == 121) + { + return BadRequest("Location document failed validation"); + } return Ok(location); } diff --git a/microservices/LocationsApi/Models/Coord.cs b/microservices/LocationsApi/Models/Coord.cs index 95ef17a..ed3fdfc 100644 --- a/microservices/LocationsApi/Models/Coord.cs +++ b/microservices/LocationsApi/Models/Coord.cs @@ -1,8 +1,12 @@ +using MongoDB.Bson.Serialization.Attributes; + namespace LocationsApi.Models; public class Coord { + [BsonElement("x")] public int X { get; set; } + [BsonElement("y")] public int Y { get; set; } } diff --git a/microservices/LocationsApi/Models/Location.cs b/microservices/LocationsApi/Models/Location.cs index 81db813..462e763 100644 --- a/microservices/LocationsApi/Models/Location.cs +++ b/microservices/LocationsApi/Models/Location.cs @@ -9,9 +9,12 @@ public class Location [BsonRepresentation(BsonType.ObjectId)] public string? Id { get; set; } + [BsonElement("name")] public string Name { get; set; } = string.Empty; + [BsonElement("coord")] public required Coord Coord { get; set; } + [BsonElement("createdUtc")] public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; }