This commit is contained in:
Karolis2011
2021-12-23 06:42:40 +02:00
parent cad4268b79
commit b367854887
23 changed files with 4103 additions and 2049 deletions

View File

@@ -1,5 +1,6 @@
using KTUSAPS.Data.Model;
using KTUSAPS.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
@@ -23,6 +24,7 @@ namespace KTUSAPS.Controllers
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
[Authorize("admin")]
public async Task<ActionResult<IEnumerable<Issue>>> GetIssues()
{
return await dataContext.Issues.ToListAsync();
@@ -31,6 +33,7 @@ namespace KTUSAPS.Controllers
[HttpPost]
[ProducesResponseType(StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Authorize]
public async Task<ActionResult<Issue>> CreateIssueAsync([FromBody] Issue issueToCreate)
{
if (issueToCreate == null)
@@ -41,9 +44,11 @@ namespace KTUSAPS.Controllers
return BadRequest("No typeId has been specified");
if (issueToCreate.Problem != null && issueToCreate.Feedback != null && issueToCreate.IssueType != null)
return BadRequest("Do not privide navigation property values.");
// TODO: Enable next line and make thoes two fields come from user identity
//if (issueToCreate.UserID != default || issueToCreate.Email != default)
// return BadRequest("Do not provide indentity values.");
if (issueToCreate.UserID != default || issueToCreate.Email != default)
return BadRequest("Do not provide indentity values.");
issueToCreate.UserID = User.GetUserId();
issueToCreate.Email = User.GetEmail();
var createdValue = await dataContext.AddAsync(issueToCreate);
await dataContext.SaveChangesAsync();
@@ -54,6 +59,7 @@ namespace KTUSAPS.Controllers
[HttpGet("{id}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[Authorize("admin")]
public ActionResult<Issue> GetIssue(int id)
{
var issue = dataContext.Issues.AsQueryable().Where(i => i.Id == id).FirstOrDefault();
@@ -65,6 +71,7 @@ namespace KTUSAPS.Controllers
[HttpPatch("{id}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[Authorize("admin")]
public async Task<ActionResult<Issue>> UpdateIssueAsync(int id, [FromBody] Issue issue)
{
var databaseIssue = dataContext.Issues.AsQueryable().Where(i => i.Id == id).FirstOrDefault();
@@ -83,6 +90,7 @@ namespace KTUSAPS.Controllers
[HttpDelete("{id}")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[Authorize("admin")]
public async Task<IActionResult> DeleteIssueAsync(int id)
{
var issue = dataContext.Issues.AsQueryable().Where(i => i.Id == id).FirstOrDefault();