using Microsoft.AspNetCore.Mvc; using QrScanner.Models; namespace server.Controllers; [ApiController] [Route("")] public class QrScannerController : ControllerBase { const string db_connection_url = @"mongodb://localhost:27017"; const string db_name = @"qr_scanner"; const string col_codes = @"codes"; const string col_info = @"info"; public QrScannerController(){ client = new MongoClient(db_connection_url); db = client.GetDatabase(db_name); } [HttpGet("ping")] public ActionResult ping(){ string message = "Ping received from server."; Console.WriteLine($"Sent message: {message}"); return Ok(message); } [HttpGet("info")] public IActionResult info(){ return Ok(); } [HttpGet("scan")] public async Task scan(string code){ Console.WriteLine(code); return Ok(); } public async Task _store_cost(string code){ } public async Task _fetch_one(string collection){ Console.WriteLine($"_fetch_one(): Fetching first found data from '{db_name}.{col_codes}'"); var col = db.GetCollection(collection); return await col.Find(new BsonDocument{}).FirstOrDefaultAsync(); } public async Task> _fetch_code(string field, T value){ Console.WriteLine($"_fetch_code(): Fetching QR code from '{db_name}.{col_codes}'"); var col = db.GetCollection(col_codes); var filter = Builders.Filter.Eq(field, value); return await Ok(col.Find(filter).FirstOrDefaultAsync()); } public async Task>> _fetch_all_codes(){ var col = db.GetCollection(col_info); return await col.Find(new BsonDocument{}).ToListAsync(); } }