From 621311b092b7f98c23f10738642516c474780855 Mon Sep 17 00:00:00 2001 From: Tomas Fabian Date: Thu, 25 Jan 2024 21:38:36 +0100 Subject: [PATCH] [Joker.OData]: added fake keys to ODataControllerBase methods --- Joker.OData/Controllers/ODataControllerBase.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Joker.OData/Controllers/ODataControllerBase.cs b/Joker.OData/Controllers/ODataControllerBase.cs index 2a4dada..f29bedd 100644 --- a/Joker.OData/Controllers/ODataControllerBase.cs +++ b/Joker.OData/Controllers/ODataControllerBase.cs @@ -66,7 +66,8 @@ protected virtual async Task OnPostAsync(TEntity entity) #region Patch - public async Task Patch(Delta delta) + [HttpPatch] + public async Task Patch(object key, Delta delta) { var keys = GetKeysFromPath(); @@ -108,7 +109,8 @@ protected virtual Task ValidatePatchAsync(Delta delta, T #region Put - public async Task Put([FromBody]TEntity entity) + [HttpPut] + public async Task Put(object key, [FromBody]TEntity entity) { var validationResult = await ValidatePutAsync(entity); @@ -141,7 +143,8 @@ protected virtual Task ValidatePutAsync(TEntity entity) #region Delete - public async Task Delete(ODataOptions oDataOptions) + [HttpDelete] + public async Task Delete(object key, ODataOptions oDataOptions) { return await Delete(); } @@ -200,12 +203,11 @@ protected virtual async Task OnCreateRef(string navigationPropert { var keys = GetKeysFromPath(); var keyPredicate = CreateKeysPredicate(keys); - var entity = GetAll().Where(keyPredicate).FirstOrDefault(); + var entity = GetAll().Where(keyPredicate).FirstOrDefault(); //TODO: use Find in case of disabled change tracking? if (entity == null) return NotFound($"{nameof(TEntity)}: {keys}"); - var odataPath = Request.CreateODataPath(link); var relatedObjectKeys = GetKeysFromPath(odataPath); @@ -238,7 +240,8 @@ protected virtual async Task OnCreateRef(string navigationPropert #region DeleteRef - public async Task DeleteRef(string navigationProperty) + [HttpDelete] + public async Task DeleteRef(object key, string navigationProperty) { return await OnDeleteRef(navigationProperty); }