Initial backend draft

This commit is contained in:
Fishandchips321 2025-12-22 18:45:15 +00:00
parent b6293beeec
commit 84ad96d628
18 changed files with 148 additions and 0 deletions

View file

@ -0,0 +1,25 @@
using JellyGlass.Services;
using Microsoft.AspNetCore.Mvc;
namespace JellyGlass.Controllers;
[ApiController]
[Route("[controller]")]
public class ItemController : ControllerBase
{
private ILogger<ItemController> _logger;
private IItemService _service;
public ItemController(ILogger<ItemController> logger, IItemService service)
{
_service = service;
_logger = logger;
}
public async Task<IActionResult> GetItemsForLibrary(string libraryId)
{
var items = await _service.GetItemsFromLibrary(libraryId);
return Ok(items);
}
}

View file

@ -0,0 +1,26 @@
using JellyGlass.Services;
using Microsoft.AspNetCore.Mvc;
namespace JellyGlass.Controllers;
[ApiController]
[Route("[controller]")]
public class LibraryController : ControllerBase
{
private ILogger<LibraryController> _logger;
private ILibraryService _service;
public LibraryController(ILogger<LibraryController> logger, ILibraryService service)
{
_logger = logger;
_service = service;
}
[HttpGet]
public async Task<IActionResult> GetLibraries()
{
var libraries = await _service.GetLibraries();
return Ok(libraries);
}
}

View file

@ -0,0 +1,25 @@
using JellyGlass.Services;
using Microsoft.AspNetCore.Mvc;
namespace JellyGlass.Controllers;
[ApiController]
[Route("[controller]")]
public class ServerController : ControllerBase
{
private ILogger<ServerController> _logger;
private IServerService _service;
public ServerController(ILogger<ServerController> logger, IServerService service)
{
_logger = logger;
_service = service;
}
public async Task<IActionResult> GetServers()
{
var servers = await _service.GetServers();
return Ok(servers);
}
}

9
backend/Models/Item.cs Normal file
View file

@ -0,0 +1,9 @@
namespace JellyGlass.Models;
public class Item
{
public string ID { get; set; }
public string Name { get; set; }
public Uri ThumbnailUrl { get; set; }
public Uri Url { get; set; }
}

View file

@ -0,0 +1,8 @@
namespace JellyGlass.Models;
public class Library
{
public string ID { get; set; }
public string Name { get; set; }
public Uri ThumbnailUrl { get; set; }
}

7
backend/Models/Server.cs Normal file
View file

@ -0,0 +1,7 @@
namespace JellyGlass.Models;
public class Server
{
public string Owner { get; set; }
public Uri Url { get; set; }
}

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Repositories;
public interface IItemRepository
{
public Task<Item[]> GetItemsFromLibrary(string libraryId);
}

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Repositories;
public interface ILibraryRepository
{
public Task<Library[]> GetLibraries();
}

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Repositories;
public interface IServerRepository
{
public Task<Server[]> GetServers();
}

View file

View file

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Services;
public interface IItemService
{
public Task<Item[]> GetItemsFromLibrary(string libraryId);
}

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Services;
public interface ILibraryService
{
public Task<Library[]> GetLibraries();
}

View file

@ -0,0 +1,8 @@
using JellyGlass.Models;
namespace JellyGlass.Services;
public interface IServerService
{
public Task<Server[]> GetServers();
}

View file

View file

View file