Bulk tag ops
This commit is contained in:
@@ -8,23 +8,24 @@ NOTE: no bulk tag op route will work with every object in order for safety, ther
|
|||||||
note: they can use a datalist to select so no need to add any filtering ability here
|
note: they can use a datalist to select so no need to add any filtering ability here
|
||||||
|
|
||||||
todo: SET TAGS ability to bulk tag items from list (SERVER AND CLIENT)
|
todo: SET TAGS ability to bulk tag items from list (SERVER AND CLIENT)
|
||||||
route: bulk tag by type and id collection
|
route: bulk-add by type and id collection
|
||||||
parameters=Type, [id], tag
|
parameters=Type, [id], tag
|
||||||
route: bulk tag by type and all objects no id specified
|
route: bulk-add-all by type and all objects no id specified
|
||||||
parameters=Type, tag
|
parameters=Type, tag
|
||||||
|
|
||||||
todo: REPLACE TAGS
|
todo: REPLACE TAGS
|
||||||
route: bulk replace one tag with another tag by type and id collection
|
route: bulk-replace one tag with another tag by type and id collection
|
||||||
parameters=Type, [id], oldTag, newTag
|
|
||||||
route: bulk repalce one tag with another tag by type and all objects no collection
|
|
||||||
parameters=Type, [id], oldTag, newTag
|
parameters=Type, [id], oldTag, newTag
|
||||||
|
route: bulk-replace-all one tag with another tag by type and all objects no collection
|
||||||
|
parameters=Type, oldTag, newTag
|
||||||
|
|
||||||
todo: REMOVE TAGS
|
todo: REMOVE TAGS
|
||||||
route: bulk remove specified tag by type and id collection
|
route: bulk-remove specified tag by type and id collection
|
||||||
parameters=Type, [id], tag
|
parameters=Type, [id], tag
|
||||||
route: bulk remove tag by type and all objects no id specified
|
route: bulk-remove-all tag by type and all objects no id specified
|
||||||
parameters=Type, tag
|
parameters=Type, tag
|
||||||
|
|
||||||
|
|
||||||
todo: API root controller
|
todo: API root controller
|
||||||
build mode and server info should be authorized shoudln't they? Unauthorized people have no need to see that stuff
|
build mode and server info should be authorized shoudln't they? Unauthorized people have no need to see that stuff
|
||||||
todo: api / server landing page is shitty on a mobile
|
todo: api / server landing page is shitty on a mobile
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Routing;
|
using Microsoft.AspNetCore.Routing;
|
||||||
@@ -46,7 +47,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="query">The query to filter the returned list by</param>
|
/// <param name="query">The query to filter the returned list by</param>
|
||||||
/// <returns>Filtered list (maximum 25 items are returned for any query)</returns>
|
/// <returns>Filtered list (maximum 25 items are returned for any query)</returns>
|
||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
public async Task<IActionResult> GetList([FromQuery]string query)
|
public async Task<IActionResult> GetList([FromQuery] string query)
|
||||||
{
|
{
|
||||||
if (serverState.IsClosed)
|
if (serverState.IsClosed)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
@@ -59,7 +60,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="query">The query to filter the returned list by</param>
|
/// <param name="query">The query to filter the returned list by</param>
|
||||||
/// <returns>List</returns>
|
/// <returns>List</returns>
|
||||||
[HttpGet("cloudlist")]
|
[HttpGet("cloudlist")]
|
||||||
public async Task<IActionResult> GetCloudList([FromQuery]string query)
|
public async Task<IActionResult> GetCloudList([FromQuery] string query)
|
||||||
{
|
{
|
||||||
if (serverState.IsClosed)
|
if (serverState.IsClosed)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
@@ -67,6 +68,32 @@ namespace AyaNova.Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//BULK OPS
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bulk add tags to objects
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ayaType">Required</param>
|
||||||
|
/// <param name="tagOpParams">Required</param>
|
||||||
|
/// <returns>Number of items affected</returns>
|
||||||
|
[HttpPost("bulk-add/{ayaType}")]
|
||||||
|
public async Task<IActionResult> BulkAdd([FromRoute] AyaType ayaType, [FromBody] TagUtil.BulkTagOpParameter tagOpParams)
|
||||||
|
{
|
||||||
|
if (!serverState.IsOpen)
|
||||||
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
|
if (!ModelState.IsValid)
|
||||||
|
return BadRequest(new ApiErrorResponse(ModelState));
|
||||||
|
if (!Authorized.HasModifyRole(HttpContext.Items, ayaType))
|
||||||
|
return StatusCode(403, new ApiNotAuthorizedResponse());
|
||||||
|
return Ok(ApiOkResponse.Response(await TagUtil.BulkAdd(ayaType, tagOpParams, ct), true));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}//eoc
|
}//eoc
|
||||||
}//ens
|
}//ens
|
||||||
@@ -204,13 +204,31 @@ namespace AyaNova.Biz
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public class TagCloudItem
|
||||||
|
{
|
||||||
|
public long RefCount { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//BULK OPS
|
||||||
|
//
|
||||||
|
|
||||||
|
public static async Task<long> BulkAdd(AyaType ayaType, BulkTagOpParameter tagOpParams, AyContext ct)
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException("NOT IMPLEMENTED YET");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class BulkTagOpParameter
|
||||||
|
{
|
||||||
|
public string NewTag { get; set; }
|
||||||
|
public List<long> ObjectIds { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}//eoc
|
}//eoc
|
||||||
|
|
||||||
public class TagCloudItem
|
|
||||||
{
|
|
||||||
public long RefCount { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
}//ens
|
}//ens
|
||||||
|
|||||||
Reference in New Issue
Block a user