using Microsoft.AspNetCore.Mvc; using Mindforge.API.Services.Interfaces; namespace Mindforge.API.Controllers { [ApiController] [Route("api/v1/repository")] public class RepositoryController : ControllerBase { private readonly IGiteaService _giteaService; public RepositoryController(IGiteaService giteaService) { _giteaService = giteaService; } [HttpGet("info")] public IActionResult GetInfo() { return Ok(new { name = _giteaService.GetRepositoryName() }); } [HttpGet("tree")] public async Task GetTree() { var tree = await _giteaService.GetFileTreeAsync(); return Ok(tree); } [HttpGet("file")] public async Task GetFile([FromQuery] string path) { if (string.IsNullOrWhiteSpace(path)) return BadRequest(new { error = "path query parameter is required." }); var content = await _giteaService.GetFileContentAsync(path); return Ok(new { path, content }); } } }