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
//