75 lines
3.0 KiB
C#
75 lines
3.0 KiB
C#
|
|
using API.BusinessLogic;
|
|
using API.Models.ShoppingListModels;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Security.Claims;
|
|
|
|
namespace API.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class ShoppingListController : Controller
|
|
{
|
|
private readonly ShoppingListLogic _shoppingListLogic;
|
|
|
|
public ShoppingListController(ShoppingListLogic shoppingListLogic)
|
|
{
|
|
_shoppingListLogic = shoppingListLogic;
|
|
}
|
|
|
|
[HttpGet("get")]
|
|
public async Task<IActionResult> ReadShoppingList()
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.ReadShoppingList(userId);
|
|
}
|
|
|
|
[HttpPost("add")]
|
|
public async Task<IActionResult> AddItem([FromBody] ShoppingListItemDTO listItemDTO)
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.AddItemToShoppingList(listItemDTO, userId);
|
|
}
|
|
|
|
[HttpPut("check")]
|
|
public async Task<IActionResult> CheckItem(int itemId)
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.CheckItemInShoppingList(userId, itemId);
|
|
}
|
|
|
|
[HttpPut("update")]
|
|
public async Task<IActionResult> UpdateItem([FromBody] ShoppingListItemDTO listItemDTO, int itemId)
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.UpdateItemInShoppingList(userId, itemId, listItemDTO);
|
|
}
|
|
|
|
[HttpDelete("delete")]
|
|
public async Task<IActionResult> DeleteItem(int itemId)
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.DeleteItemInShoppingList(userId, itemId);
|
|
}
|
|
|
|
[HttpPost("recipeadd")]
|
|
public async Task<IActionResult> AddARecipesItems(int recipeId)
|
|
{
|
|
var claims = HttpContext.User.Claims;
|
|
string userIdString = claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
|
int userId = Convert.ToInt32(userIdString);
|
|
return await _shoppingListLogic.AddRecipeToShoppingList(userId, recipeId);
|
|
}
|
|
}
|
|
}
|