Implement base controller for shared functionality; update existing controllers to inherit from BaseController and adjust user ID handling. Add JWT authentication support and modify item retrieval methods in GameDataController.

This commit is contained in:
2025-02-15 21:57:59 -03:00
parent 6d81ff1564
commit b84599b370
10 changed files with 72 additions and 31 deletions

View File

@@ -0,0 +1,13 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace PetCompanion.Controllers
{
[Authorize]
[ApiController]
[Route("api/v1/[controller]")]
public class BaseController : Controller
{
protected string userId => User.Claims.FirstOrDefault(c => c.Type == "user_id").Value;
}
}

View File

@@ -3,13 +3,10 @@ using PetCompanion.Repositories;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class GameDataController : Controller
public class GameDataController : BaseController
{
private readonly GameItemsRepository gameItemsRepository;
private readonly ILogger<InventoryController> logger;
private readonly Guid userId = Guid.Parse("f5f4b3b3-3b7b-4b7b-8b7b-7b7b7b7b7b7b");
public GameDataController(
ILogger<InventoryController> logger,
@@ -19,7 +16,20 @@ namespace PetCompanion.Controllers
this.gameItemsRepository = gameItemsRepository;
}
[HttpGet("item/icon/{itemId}")]
[HttpGet("item/{itemId}")]
public IActionResult GetItemInfo(int itemId)
{
try
{
return Ok(gameItemsRepository.GetById(itemId));
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpGet("item/{itemId}/icon")]
public IActionResult GetItemIcon(int itemId)
{
try

View File

@@ -1,16 +1,14 @@
using Microsoft.AspNetCore.Mvc;
using PetCompanion.Models;
using PetCompanion.Services;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class InventoryController : ControllerBase
public class InventoryController : BaseController
{
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,

View File

@@ -4,14 +4,11 @@ using PetCompanion.Services;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class PetController : ControllerBase
public class PetController : BaseController
{
private readonly PetService petService;
private readonly PetClassService petClassService;
private readonly ILogger<PetController> logger;
private Guid userId = Guid.Parse("f5f4b3b3-3b7b-4b7b-8b7b-7b7b7b7b7b7b");
public PetController(
ILogger<PetController> logger,

View File

@@ -3,14 +3,11 @@ using PetCompanion.Services;
namespace PetCompanion.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
public class SkillController : ControllerBase
public class SkillController : BaseController
{
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,
@@ -34,7 +31,7 @@ namespace PetCompanion.Controllers
{
try
{
var skills = _petSkillService.GetPetSkills(petId, userId.ToString());
var skills = _petSkillService.GetPetSkills(petId, userId);
return Ok(skills);
}
catch (Exception ex)
@@ -48,7 +45,7 @@ namespace PetCompanion.Controllers
{
try
{
var result = _petSkillService.UpgradeSkill(petId, userId.ToString(), skillId);
var result = _petSkillService.UpgradeSkill(petId, userId, skillId);
return Ok(result);
}
catch (Exception ex)