Files
rr3-server/RR3CommunityServer/Controllers/TrackingController.cs
Daniel Elliott 0a327f3a8b Initial commit: RR3 Community Server with web admin panel
- ASP.NET Core 8 REST API server
- 12 API endpoints matching EA Synergy protocol
- SQLite database with Entity Framework Core
- Web admin panel with Bootstrap 5
- User, Catalog, Session, Purchase management
- Comprehensive documentation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-17 22:02:12 -08:00

50 lines
1.4 KiB
C#

using Microsoft.AspNetCore.Mvc;
using RR3CommunityServer.Models;
namespace RR3CommunityServer.Controllers;
[ApiController]
[Route("tracking/api/core")]
public class TrackingController : ControllerBase
{
private readonly ILogger<TrackingController> _logger;
public TrackingController(ILogger<TrackingController> logger)
{
_logger = logger;
}
[HttpPost("logEvent")]
public ActionResult<SynergyResponse<object>> LogEvent([FromBody] TrackingEvent trackingEvent)
{
_logger.LogInformation("Tracking Event: {EventType} at {Timestamp}",
trackingEvent.eventType,
trackingEvent.timestamp);
// For community server, we just log and accept all events
var response = new SynergyResponse<object>
{
resultCode = 0,
message = "Event logged",
data = new { received = true }
};
return Ok(response);
}
[HttpPost("logEvents")]
public ActionResult<SynergyResponse<object>> LogEvents([FromBody] List<TrackingEvent> events)
{
_logger.LogInformation("Tracking Batch: {Count} events", events.Count);
var response = new SynergyResponse<object>
{
resultCode = 0,
message = $"{events.Count} events logged",
data = new { received = events.Count }
};
return Ok(response);
}
}