diff --git a/server/AyaNova/Controllers/DataListSavedColumnViewController.cs b/server/AyaNova/Controllers/DataListSavedColumnViewController.cs index 1a871730..cc5b2ea4 100644 --- a/server/AyaNova/Controllers/DataListSavedColumnViewController.cs +++ b/server/AyaNova/Controllers/DataListSavedColumnViewController.cs @@ -1,18 +1,13 @@ -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.Authorization; - -using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; - using AyaNova.Models; using AyaNova.Api.ControllerHelpers; using AyaNova.Biz; - namespace AyaNova.Api.Controllers { @@ -45,36 +40,30 @@ namespace AyaNova.Api.Controllers } - // /// - // /// Get full DataListSavedColumnView object - // /// - // /// - // /// A single DataListSavedColumnView - // [HttpGet("{id}")] - // public async Task GetDataListSavedColumnView([FromRoute] long id) - // { - // if (!serverState.IsOpen) - // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - - // //Instantiate the business object handler - // DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); - - // if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) - // return StatusCode(403, new ApiNotAuthorizedResponse()); - - // if (!ModelState.IsValid) - // return BadRequest(new ApiErrorResponse(ModelState)); - - // var o = await biz.GetAsync(id); - // if (o == null) - // return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); - - // return Ok(ApiOkResponse.Response(o)); - // } + /// + /// Get DataListSavedColumnView + /// + /// + /// + /// DataListSavedColumnView + [HttpGet("{userId}/{listKey}")] + public async Task GetDataListSavedColumnView([FromRoute] long userId, [FromRoute] string listKey) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + var o = await biz.GetAsync(userId, listKey, true); + if (o == null) return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); + return Ok(ApiOkResponse.Response(o)); + } - /// + /// /// Replace DataListSavedColumnView /// /// @@ -94,45 +83,30 @@ namespace AyaNova.Api.Controllers if (o == null) return BadRequest(new ApiErrorResponse(biz.Errors)); else - return Ok(); + return Ok(); } - // /// - // /// Put (update) the single DataListSavedColumnView for this userid / listkey combo - // /// - // /// Replacement default saved column view - // /// - // [HttpPut] - // public async Task PutDataListSavedColumnView([FromBody] DataListSavedColumnView inObj) - // { - // if (!serverState.IsOpen) - // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - - // if (!ModelState.IsValid) - // return BadRequest(new ApiErrorResponse(ModelState)); - - // //Instantiate the business object handler - // DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); - - - // try - // { - // if (!await biz.PutAsync(inObj)) - // return BadRequest(new ApiErrorResponse(biz.Errors)); - // } - // catch (DbUpdateConcurrencyException) - // { - // if (!await biz.ExistsAsync(inObj.Id)) - // return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); - // else - // return StatusCode(409, new ApiErrorResponse(ApiErrorCode.CONCURRENCY_CONFLICT)); - // } - // return Ok(); - // //return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); - // } - - + /// + /// Reset DataListSavedColumnView to factory defaults + /// + /// + /// + /// NoContent + [HttpDelete("{id}")] + public async Task DeleteProject([FromRoute] long userId, [FromRoute] string listKey) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + if (!Authorized.HasDeleteRole(HttpContext.Items, biz.BizType)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!await biz.DeleteAsync(userId, listKey)) + return BadRequest(new ApiErrorResponse(biz.Errors)); + return NoContent(); + } //------------ diff --git a/server/AyaNova/biz/DataListSavedColumnViewBiz.cs b/server/AyaNova/biz/DataListSavedColumnViewBiz.cs index 8a92b602..bdb2f83a 100644 --- a/server/AyaNova/biz/DataListSavedColumnViewBiz.cs +++ b/server/AyaNova/biz/DataListSavedColumnViewBiz.cs @@ -68,9 +68,7 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// //GET // - //Internal, used by datalistfetcher via datalisttableprocessingoptions constructor - //can be called without full biz instantiation as it doesn't rely on UserId in biz object or other shit - //maybe should be static? + // internal async Task GetAsync(long userId, string listKey, bool createDefaultIfNecessary) { var ret = await ct.DataListSavedColumnView.AsNoTracking().SingleOrDefaultAsync(z => z.UserId == userId && z.ListKey == listKey); @@ -90,6 +88,7 @@ namespace AyaNova.Biz } + //////////////////////////////////////////////////////////////////////////////////////////////// //DELETE //