61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using PetCompanion.Services;
|
|
|
|
namespace PetCompanion.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("api/v1/[controller]")]
|
|
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,
|
|
PetSkillService petSkillService)
|
|
{
|
|
_logger = logger;
|
|
_skillService = skillService;
|
|
_petSkillService = petSkillService;
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult GetAvailableSkills()
|
|
{
|
|
var skills = _skillService.GetAvailableSkills();
|
|
return Ok(skills);
|
|
}
|
|
|
|
[HttpGet("{petId}/skills")]
|
|
public IActionResult GetPetSkills(string petId)
|
|
{
|
|
try
|
|
{
|
|
var skills = _petSkillService.GetPetSkills(petId, userId.ToString());
|
|
return Ok(skills);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return BadRequest(ex.Message);
|
|
}
|
|
}
|
|
|
|
[HttpPost("{petId}/allocate/{skillId}")]
|
|
public IActionResult AllocateSkillPoint(string petId, int skillId)
|
|
{
|
|
try
|
|
{
|
|
var result = _petSkillService.AllocateSkillPoint(petId, userId.ToString(), skillId);
|
|
return Ok(result);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return BadRequest(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
}
|