diff options
Diffstat (limited to 'src/server/Controllers/TransactionsController.cs')
| -rw-r--r-- | src/server/Controllers/TransactionsController.cs | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/server/Controllers/TransactionsController.cs b/src/server/Controllers/TransactionsController.cs new file mode 100644 index 0000000..8441beb --- /dev/null +++ b/src/server/Controllers/TransactionsController.cs @@ -0,0 +1,78 @@ +using System; +using System.Linq; +using Microsoft.AspNetCore.Mvc; +using Dough.Models.Database; +using Dough.Models; +using Dough.Models.Exceptions; +using Dough.Models.Results; + +namespace Dough.Controllers +{ + public class TransactionsController : BaseController + { + private readonly MainDbContext _context; + + public TransactionsController(MainDbContext context) + { + _context = context; + } + + [HttpGet] + public ActionResult GetTransactions() + { + var transactions = _context.Transactions.Where(c => !c.Hidden); + return Ok(transactions.ToList()); + } + + [HttpPost("add")] + public ActionResult AddTransaction(Transaction data) + { + data.SetBaseProperties(); + try + { + data.Validate(); + } + catch (Exception e) + { + Console.WriteLine(e); + if (e is ModelValidationException mve) + return BadRequest(mve.ErrorResult); + return BadRequest(new ErrorResult()); + } + + _context.Transactions.Add(data); + _context.SaveChanges(); + return Ok(); + } + + [HttpPost("update")] + public ActionResult UpdateTransaction(Transaction data) + { + try + { + data.Validate(); + } + catch (Exception e) + { + Console.WriteLine(e); + if (e is ModelValidationException mve) + return BadRequest(mve.ErrorResult); + return BadRequest(new ErrorResult()); + } + + var transaction = _context.Transactions.SingleOrDefault(data.Id); + transaction.Update(data); + _context.SaveChanges(); + return Ok(data); + } + + [HttpDelete("delete")] + public ActionResult DeleteTransaction(Transaction data) + { + if (data.Id == default) return BadRequest(new ErrorResult()); + _context.Transactions.Remove(data); + _context.SaveChanges(); + return Ok(); + } + } +} |
