not working inventory :c

This commit is contained in:
2025-02-04 17:47:18 -03:00
parent f234b5d84d
commit 7a2c3d2f67
22 changed files with 2713 additions and 49 deletions

View File

@@ -0,0 +1,113 @@
using Microsoft.AspNetCore.Mvc;
using PetCompanion.Models;
using PetCompanion.Services;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class InventoryController : ControllerBase
{
private readonly PetInventoryService _inventoryService;
private readonly ILogger<InventoryController> _logger;
private readonly Guid userId = Guid.Parse("f5f4b3b3-3b7b-4b7b-8b7b-7b7b7b7b7b7b");
public InventoryController(
ILogger<InventoryController> logger,
PetInventoryService inventoryService)
{
_logger = logger;
_inventoryService = inventoryService;
}
[HttpGet("{petId}")]
public async Task<IActionResult> GetInventory(string petId)
{
try
{
var inventory = await _inventoryService.GetInventory(petId, userId.ToString());
return Ok(inventory);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPut("{petId}/{itemId}/use")]
public async Task<IActionResult> UseItem(string petId, int itemId)
{
try
{
var updatedPet = await _inventoryService.UseItem(petId, userId.ToString(), itemId);
return Ok(updatedPet);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPut("{petId}/{itemId}/equip")]
public IActionResult EquipItem(string petId, int itemId)
{
try
{
var updatedPet = _inventoryService.EquipItem(petId, userId.ToString(), itemId);
return Ok(updatedPet);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPut("{petId}/{equipTarget}/unequip")]
public IActionResult UnequipItem(string petId, ItemEquipTarget equipTarget)
{
try
{
var updatedPet = _inventoryService.UnequipItem(petId, userId.ToString(), equipTarget);
return Ok(updatedPet);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPut("{petId}/{itemId}/drop")]
public IActionResult DropItem(string petId, int itemId)
{
try
{
var updatedPet = _inventoryService.DropItem(petId, userId.ToString(), itemId);
return Ok(updatedPet);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPost("{petId}/create")]
public IActionResult AddItem(string petId, [FromBody] AddItemRequest request)
{
try
{
var updatedPet = _inventoryService.AddItemToPet(petId, userId.ToString(), request.ItemId, request.Quantity);
return Ok(updatedPet);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
}
public class AddItemRequest
{
public int ItemId { get; set; }
public int Quantity { get; set; } = 1;
}
}

View File

@@ -8,15 +8,18 @@ namespace PetCompanion.Controllers
public class SkillController : ControllerBase
{
private readonly SkillService _skillService;
private readonly PetSkillService _petSkillService;
private readonly ILogger<SkillController> _logger;
private Guid userId = Guid.Parse("f5f4b3b3-3b7b-4b7b-8b7b-7b7b7b7b7b7b");
public SkillController(
ILogger<SkillController> logger,
SkillService skillService)
SkillService skillService,
PetSkillService petSkillService)
{
_logger = logger;
_skillService = skillService;
_petSkillService = petSkillService;
}
[HttpGet]
@@ -26,12 +29,26 @@ namespace PetCompanion.Controllers
return Ok(skills);
}
[HttpGet("{petId}/skills")]
public async Task<IActionResult> GetPetSkills(string petId)
{
try
{
var skills = await _petSkillService.GetPetSkills(petId, userId.ToString());
return Ok(skills);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPost("{petId}/allocate/{skillId}")]
public async Task<IActionResult> AllocateSkillPoint(string petId, int skillId)
{
try
{
var result = await _skillService.AllocateSkillPoint(petId, userId.ToString(), skillId);
var result = await _petSkillService.AllocateSkillPoint(petId, userId.ToString(), skillId);
return Ok(result);
}
catch (Exception ex)