From 84ad96d62812133211e8089c8fb440906c450838 Mon Sep 17 00:00:00 2001 From: Fishandchips321 Date: Mon, 22 Dec 2025 18:45:15 +0000 Subject: [PATCH] Initial backend draft --- backend/Controllers/ItemController.cs | 25 +++++++++++++++++++++ backend/Controllers/LibraryController.cs | 26 ++++++++++++++++++++++ backend/Controllers/ServerController.cs | 25 +++++++++++++++++++++ backend/Models/Item.cs | 9 ++++++++ backend/Models/Library.cs | 8 +++++++ backend/Models/Server.cs | 7 ++++++ backend/Repositories/IItemRepository.cs | 8 +++++++ backend/Repositories/ILibraryRepository.cs | 8 +++++++ backend/Repositories/IServerRepository.cs | 8 +++++++ backend/Repositories/ItemRepository.cs | 0 backend/Repositories/LibraryRepository.cs | 0 backend/Repositories/ServerRepository.cs | 0 backend/Services/IItemService.cs | 8 +++++++ backend/Services/ILibraryService.cs | 8 +++++++ backend/Services/IServerService.cs | 8 +++++++ backend/Services/ItemService.cs | 0 backend/Services/LibraryService.cs | 0 backend/Services/ServerService.cs | 0 18 files changed, 148 insertions(+) create mode 100644 backend/Controllers/ItemController.cs create mode 100644 backend/Controllers/LibraryController.cs create mode 100644 backend/Controllers/ServerController.cs create mode 100644 backend/Models/Item.cs create mode 100644 backend/Models/Library.cs create mode 100644 backend/Models/Server.cs create mode 100644 backend/Repositories/IItemRepository.cs create mode 100644 backend/Repositories/ILibraryRepository.cs create mode 100644 backend/Repositories/IServerRepository.cs create mode 100644 backend/Repositories/ItemRepository.cs create mode 100644 backend/Repositories/LibraryRepository.cs create mode 100644 backend/Repositories/ServerRepository.cs create mode 100644 backend/Services/IItemService.cs create mode 100644 backend/Services/ILibraryService.cs create mode 100644 backend/Services/IServerService.cs create mode 100644 backend/Services/ItemService.cs create mode 100644 backend/Services/LibraryService.cs create mode 100644 backend/Services/ServerService.cs diff --git a/backend/Controllers/ItemController.cs b/backend/Controllers/ItemController.cs new file mode 100644 index 0000000..9991096 --- /dev/null +++ b/backend/Controllers/ItemController.cs @@ -0,0 +1,25 @@ +using JellyGlass.Services; +using Microsoft.AspNetCore.Mvc; + +namespace JellyGlass.Controllers; + +[ApiController] +[Route("[controller]")] +public class ItemController : ControllerBase +{ + private ILogger _logger; + private IItemService _service; + + public ItemController(ILogger logger, IItemService service) + { + _service = service; + _logger = logger; + } + + public async Task GetItemsForLibrary(string libraryId) + { + var items = await _service.GetItemsFromLibrary(libraryId); + + return Ok(items); + } +} \ No newline at end of file diff --git a/backend/Controllers/LibraryController.cs b/backend/Controllers/LibraryController.cs new file mode 100644 index 0000000..b249f3b --- /dev/null +++ b/backend/Controllers/LibraryController.cs @@ -0,0 +1,26 @@ +using JellyGlass.Services; +using Microsoft.AspNetCore.Mvc; + +namespace JellyGlass.Controllers; + +[ApiController] +[Route("[controller]")] +public class LibraryController : ControllerBase +{ + private ILogger _logger; + private ILibraryService _service; + + public LibraryController(ILogger logger, ILibraryService service) + { + _logger = logger; + _service = service; + } + + [HttpGet] + public async Task GetLibraries() + { + var libraries = await _service.GetLibraries(); + + return Ok(libraries); + } +} \ No newline at end of file diff --git a/backend/Controllers/ServerController.cs b/backend/Controllers/ServerController.cs new file mode 100644 index 0000000..5afd779 --- /dev/null +++ b/backend/Controllers/ServerController.cs @@ -0,0 +1,25 @@ +using JellyGlass.Services; +using Microsoft.AspNetCore.Mvc; + +namespace JellyGlass.Controllers; + +[ApiController] +[Route("[controller]")] +public class ServerController : ControllerBase +{ + private ILogger _logger; + private IServerService _service; + + public ServerController(ILogger logger, IServerService service) + { + _logger = logger; + _service = service; + } + + public async Task GetServers() + { + var servers = await _service.GetServers(); + + return Ok(servers); + } +} \ No newline at end of file diff --git a/backend/Models/Item.cs b/backend/Models/Item.cs new file mode 100644 index 0000000..b80e2a2 --- /dev/null +++ b/backend/Models/Item.cs @@ -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; } +} \ No newline at end of file diff --git a/backend/Models/Library.cs b/backend/Models/Library.cs new file mode 100644 index 0000000..a007eb1 --- /dev/null +++ b/backend/Models/Library.cs @@ -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; } +} \ No newline at end of file diff --git a/backend/Models/Server.cs b/backend/Models/Server.cs new file mode 100644 index 0000000..b907131 --- /dev/null +++ b/backend/Models/Server.cs @@ -0,0 +1,7 @@ +namespace JellyGlass.Models; + +public class Server +{ + public string Owner { get; set; } + public Uri Url { get; set; } +} \ No newline at end of file diff --git a/backend/Repositories/IItemRepository.cs b/backend/Repositories/IItemRepository.cs new file mode 100644 index 0000000..6ee8db2 --- /dev/null +++ b/backend/Repositories/IItemRepository.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Repositories; + +public interface IItemRepository +{ + public Task GetItemsFromLibrary(string libraryId); +} \ No newline at end of file diff --git a/backend/Repositories/ILibraryRepository.cs b/backend/Repositories/ILibraryRepository.cs new file mode 100644 index 0000000..351ea87 --- /dev/null +++ b/backend/Repositories/ILibraryRepository.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Repositories; + +public interface ILibraryRepository +{ + public Task GetLibraries(); +} \ No newline at end of file diff --git a/backend/Repositories/IServerRepository.cs b/backend/Repositories/IServerRepository.cs new file mode 100644 index 0000000..489985f --- /dev/null +++ b/backend/Repositories/IServerRepository.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Repositories; + +public interface IServerRepository +{ + public Task GetServers(); +} \ No newline at end of file diff --git a/backend/Repositories/ItemRepository.cs b/backend/Repositories/ItemRepository.cs new file mode 100644 index 0000000..e69de29 diff --git a/backend/Repositories/LibraryRepository.cs b/backend/Repositories/LibraryRepository.cs new file mode 100644 index 0000000..e69de29 diff --git a/backend/Repositories/ServerRepository.cs b/backend/Repositories/ServerRepository.cs new file mode 100644 index 0000000..e69de29 diff --git a/backend/Services/IItemService.cs b/backend/Services/IItemService.cs new file mode 100644 index 0000000..8df7a73 --- /dev/null +++ b/backend/Services/IItemService.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Services; + +public interface IItemService +{ + public Task GetItemsFromLibrary(string libraryId); +} \ No newline at end of file diff --git a/backend/Services/ILibraryService.cs b/backend/Services/ILibraryService.cs new file mode 100644 index 0000000..f09dab9 --- /dev/null +++ b/backend/Services/ILibraryService.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Services; + +public interface ILibraryService +{ + public Task GetLibraries(); +} \ No newline at end of file diff --git a/backend/Services/IServerService.cs b/backend/Services/IServerService.cs new file mode 100644 index 0000000..920f696 --- /dev/null +++ b/backend/Services/IServerService.cs @@ -0,0 +1,8 @@ +using JellyGlass.Models; + +namespace JellyGlass.Services; + +public interface IServerService +{ + public Task GetServers(); +} \ No newline at end of file diff --git a/backend/Services/ItemService.cs b/backend/Services/ItemService.cs new file mode 100644 index 0000000..e69de29 diff --git a/backend/Services/LibraryService.cs b/backend/Services/LibraryService.cs new file mode 100644 index 0000000..e69de29 diff --git a/backend/Services/ServerService.cs b/backend/Services/ServerService.cs new file mode 100644 index 0000000..e69de29