@ -36,6 +95,7 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -36,6 +95,7 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpDelete("/api/blocks/groups/{id:int}", Name = "DeleteBlockGroup")]
@ -46,18 +106,21 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -46,18 +106,21 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpGet("/api/blocks/groups/{groupId:int}/blocks", Name = "GetBlocksByGroup")]
@ -67,12 +130,17 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -67,12 +130,17 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpGet("/api/blocks/{id:int}/items", Name = "GetBlockItems")]
@ -85,6 +153,7 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -85,6 +153,7 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpDelete("/api/blocks/{id:int}", Name = "DeleteBlock")]
@ -94,6 +163,7 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -94,6 +163,7 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpPost("/api/blocks/{id:int}/copy", Name = "CopyBlock")]
[Tags("Blocks")]
[EndpointSummary("Copy a block")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CopyBlock(
intid,
[Required][FromBody]CopyBlockRequestrequest,
@ -107,6 +177,7 @@ public class BlockController(IMediator mediator) : ControllerBase
@@ -107,6 +177,7 @@ public class BlockController(IMediator mediator) : ControllerBase
[HttpPut("/api/blocks/{id:int}/items", Name = "ReplaceBlockItems")]
@ -37,6 +40,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -37,6 +40,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpGet("/api/channels/by-number/{channelNumber}", Name = "GetChannelByNumber")]
@ -46,6 +50,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -46,6 +50,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/channels", Name = "CreateChannel")]
[Tags("Channels")]
[EndpointSummary("Create a channel")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CreateChannel(
[Required][FromBody]CreateChannelRequestrequest,
CancellationTokencancellationToken)
@ -89,6 +94,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -89,6 +94,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPut("/api/channels/{id:int}", Name = "UpdateChannel")]
[Tags("Channels")]
[EndpointSummary("Update a channel")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>UpdateChannel(
intid,
[Required][FromBody]UpdateChannelRequestrequest,
@ -134,6 +140,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -134,6 +140,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpDelete("/api/channels/{id:int}", Name = "DeleteChannel")]
@ -143,6 +150,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -143,6 +150,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/channels/{channelNumber}/playout/reset", Name = "ResetChannelPlayout")]
@ -158,6 +166,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -158,6 +166,7 @@ public class ChannelController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/channels/{channelNumber}/playout/build", Name = "BuildChannelPlayout")]
@ -52,17 +84,19 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -52,17 +84,19 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpPost("/api/collections", Name = "CreateCollection")]
@ -75,6 +109,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -75,6 +109,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpDelete("/api/collections/{id:int}", Name = "DeleteCollection")]
@ -84,6 +119,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -84,6 +119,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpPost("/api/collections/{id:int}/items", Name = "AddItemsToCollection")]
@ -109,6 +145,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -109,6 +145,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpDelete("/api/collections/{id:int}/items", Name = "RemoveItemsFromCollection")]
[Tags("Collections")]
[EndpointSummary("Remove items from a collection")]
@ -123,21 +160,27 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -123,21 +160,27 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpGet("/api/collections/multi", Name = "GetMultiCollections")]
@ -146,12 +189,13 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -146,12 +189,13 @@ public class CollectionController(IMediator mediator) : ControllerBase
@ -167,6 +211,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
@@ -167,6 +211,7 @@ public class CollectionController(IMediator mediator) : ControllerBase
[HttpDelete("/api/collections/multi/{id:int}", Name = "DeleteMultiCollection")]
@ -30,12 +32,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
@@ -30,12 +32,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
[HttpGet("/api/config/xmltv", Name = "GetXmltvSettings")]
@ -47,12 +51,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
@@ -47,12 +51,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
[HttpGet("/api/config/logging", Name = "GetLoggingSettings")]
@ -64,12 +70,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
@@ -64,12 +70,14 @@ public class ConfigController(IMediator mediator) : ControllerBase
[HttpGet("/api/config/library-refresh-interval", Name = "GetLibraryRefreshInterval")]
@ -37,6 +121,7 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -37,6 +121,7 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpDelete("/api/decos/groups/{id:int}", Name = "DeleteDecoGroup")]
@ -47,39 +132,47 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -47,39 +132,47 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpGet("/api/decos/groups/{groupId:int}/decos", Name = "GetDecosByGroup")]
[HttpPut("/api/decos/{id:int}", Name = "UpdateDeco")]
[Tags("Decos")]
[EndpointSummary("Update a deco")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>UpdateDeco(
intid,
[Required][FromBody]UpdateDecoRequestrequest,
@ -128,6 +221,7 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -128,6 +221,7 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpDelete("/api/decos/{id:int}", Name = "DeleteDeco")]
@ -137,6 +231,7 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -137,6 +231,7 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpPut("/api/playouts/{playoutId:int}/deco", Name = "UpdateDefaultDeco")]
[Tags("Decos")]
[EndpointSummary("Update default deco for playout")]
@ -151,12 +246,14 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -151,12 +246,14 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpGet("/api/decos/template-groups", Name = "GetDecoTemplateGroups")]
@ -169,6 +266,7 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -169,6 +266,7 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpDelete("/api/decos/template-groups/{id:int}", Name = "DeleteDecoTemplateGroup")]
@ -179,18 +277,21 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -179,18 +277,21 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpGet("/api/decos/template-groups/{groupId:int}/templates", Name = "GetDecoTemplatesByGroup")]
@ -200,12 +301,14 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -200,12 +301,14 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpGet("/api/decos/templates/{id:int}/items", Name = "GetDecoTemplateItems")]
@ -218,6 +321,7 @@ public class DecoController(IMediator mediator) : ControllerBase
@@ -218,6 +321,7 @@ public class DecoController(IMediator mediator) : ControllerBase
[HttpDelete("/api/decos/templates/{id:int}", Name = "DeleteDecoTemplate")]
@ -31,18 +33,21 @@ public class EmbyController(IMediator mediator) : ControllerBase
@@ -31,18 +33,21 @@ public class EmbyController(IMediator mediator) : ControllerBase
[HttpGet("/api/emby/sources/{id:int}/libraries", Name = "GetEmbyLibraries")]
@ -58,6 +63,7 @@ public class EmbyController(IMediator mediator) : ControllerBase
@@ -58,6 +63,7 @@ public class EmbyController(IMediator mediator) : ControllerBase
[HttpPut("/api/emby/library-preferences", Name = "UpdateEmbyLibraryPreferences")]
@ -72,6 +78,7 @@ public class EmbyController(IMediator mediator) : ControllerBase
@@ -72,6 +78,7 @@ public class EmbyController(IMediator mediator) : ControllerBase
[HttpGet("/api/emby/secrets", Name = "GetEmbySecrets")]
@ -30,6 +32,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
@@ -30,6 +32,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
[HttpPost("/api/ffmpeg/profiles/new", Name = "CreateFFmpegProfile")]
[Tags("FFmpeg")]
[EndpointSummary("Create FFmpeg profile")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddOne(
[Required][FromBody]
CreateFFmpegProfilerequest,
@ -42,6 +45,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
@@ -42,6 +45,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
[HttpPut("/api/ffmpeg/profiles/update", Name = "UpdateFFmpegProfile")]
[Tags("FFmpeg")]
[EndpointSummary("Update FFmpeg profile")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>UpdateOne(
[Required][FromBody]
UpdateFFmpegProfilerequest,
@ -54,6 +58,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
@@ -54,6 +58,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
[HttpDelete("/api/ffmpeg/delete/{id:int}", Name = "DeleteFFmpegProfile")]
@ -63,6 +68,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
@@ -63,6 +68,7 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
[HttpPost("/api/ffmpeg/profiles/{id:int}/copy", Name = "CopyFFmpegProfile")]
@ -76,12 +82,14 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
@@ -76,12 +82,14 @@ public class FFmpegProfileController(IMediator mediator) : ControllerBase
[HttpGet("/api/ffmpeg/settings", Name = "GetFFmpegSettings")]
@ -26,12 +27,14 @@ public class FillerController(IMediator mediator) : ControllerBase
@@ -26,12 +27,14 @@ public class FillerController(IMediator mediator) : ControllerBase
[HttpGet("/api/filler/presets/all", Name = "GetAllFillerPresets")]
@ -41,6 +44,7 @@ public class FillerController(IMediator mediator) : ControllerBase
@@ -41,6 +44,7 @@ public class FillerController(IMediator mediator) : ControllerBase
[HttpPost("/api/filler/presets", Name = "CreateFillerPreset")]
@ -69,6 +73,7 @@ public class FillerController(IMediator mediator) : ControllerBase
@@ -69,6 +73,7 @@ public class FillerController(IMediator mediator) : ControllerBase
[HttpPut("/api/filler/presets/{id:int}", Name = "UpdateFillerPreset")]
@ -99,6 +104,7 @@ public class FillerController(IMediator mediator) : ControllerBase
@@ -99,6 +104,7 @@ public class FillerController(IMediator mediator) : ControllerBase
[HttpDelete("/api/filler/presets/{id:int}", Name = "DeleteFillerPreset")]
@ -31,18 +33,21 @@ public class JellyfinController(IMediator mediator) : ControllerBase
@@ -31,18 +33,21 @@ public class JellyfinController(IMediator mediator) : ControllerBase
[HttpGet("/api/jellyfin/sources/{id:int}/libraries", Name = "GetJellyfinLibraries")]
[Tags("Jellyfin")]
[EndpointSummary("Get Jellyfin libraries by source")]
@ -58,6 +63,7 @@ public class JellyfinController(IMediator mediator) : ControllerBase
@@ -58,6 +63,7 @@ public class JellyfinController(IMediator mediator) : ControllerBase
[HttpPut("/api/jellyfin/library-preferences", Name = "UpdateJellyfinLibraryPreferences")]
@ -72,6 +78,7 @@ public class JellyfinController(IMediator mediator) : ControllerBase
@@ -72,6 +78,7 @@ public class JellyfinController(IMediator mediator) : ControllerBase
[HttpGet("/api/jellyfin/secrets", Name = "GetJellyfinSecrets")]
@ -38,12 +41,14 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -38,12 +41,14 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpGet("/api/libraries/local/{id:int}/paths", Name = "GetLocalLibraryPaths")]
@ -56,6 +61,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -56,6 +61,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpPut("/api/libraries/local/{id:int}", Name = "UpdateLocalLibrary")]
@ -70,6 +76,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -70,6 +76,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpDelete("/api/libraries/local/{id:int}", Name = "DeleteLocalLibrary")]
@ -79,6 +86,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -79,6 +86,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpPost("/api/libraries/{id:int}/scan", Name = "ScanLibrary")]
@ -87,6 +95,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -87,6 +95,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpPost("/api/libraries/{id:int}/scan-show", Name = "ScanShow")]
@ -112,6 +121,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
@@ -112,6 +121,7 @@ public class LibrariesController(ITelevisionRepository televisionRepository, IMe
[HttpGet("/api/libraries/external-collections", Name = "GetExternalCollections")]
@ -21,6 +22,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
@@ -21,6 +22,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
[HttpPost("/api/maintenance/empty-trash", Name = "EmptyTrash")]
@ -30,6 +32,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
@@ -30,6 +32,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
[HttpPost("/api/maintenance/delete-orphaned-artwork", Name = "DeleteOrphanedArtwork")]
@ -39,6 +42,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
@@ -39,6 +42,7 @@ public class MaintenanceController(IMediator mediator) : ControllerBase
[HttpPost("/api/maintenance/delete-orphaned-subtitles", Name = "DeleteOrphanedSubtitles")]
@ -26,6 +27,7 @@ public class MediaController(IMediator mediator) : ControllerBase
@@ -26,6 +27,7 @@ public class MediaController(IMediator mediator) : ControllerBase
[HttpGet("/api/media/shows/{id:int}", Name = "GetShowById")]
@ -35,6 +37,7 @@ public class MediaController(IMediator mediator) : ControllerBase
@@ -35,6 +37,7 @@ public class MediaController(IMediator mediator) : ControllerBase
[HttpGet("/api/media/shows/{id:int}/seasons", Name = "GetShowSeasons")]
@ -45,6 +48,7 @@ public class MediaController(IMediator mediator) : ControllerBase
@@ -45,6 +48,7 @@ public class MediaController(IMediator mediator) : ControllerBase
[HttpGet("/api/media/seasons/{id:int}", Name = "GetSeasonById")]
@ -54,6 +58,7 @@ public class MediaController(IMediator mediator) : ControllerBase
@@ -54,6 +58,7 @@ public class MediaController(IMediator mediator) : ControllerBase
[HttpGet("/api/media/seasons/{id:int}/episodes", Name = "GetSeasonEpisodes")]
@ -65,6 +70,7 @@ public class MediaController(IMediator mediator) : ControllerBase
@@ -65,6 +70,7 @@ public class MediaController(IMediator mediator) : ControllerBase
[HttpGet("/api/media/artists/{id:int}", Name = "GetArtistById")]
@ -36,6 +81,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
@@ -36,6 +81,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
[HttpDelete("/api/playlists/groups/{id:int}", Name = "DeletePlaylistGroup")]
@ -46,18 +92,21 @@ public class PlaylistController(IMediator mediator) : ControllerBase
@@ -46,18 +92,21 @@ public class PlaylistController(IMediator mediator) : ControllerBase
[HttpGet("/api/playlists/groups/{groupId:int}/playlists", Name = "GetPlaylistsByGroup")]
@ -67,12 +116,17 @@ public class PlaylistController(IMediator mediator) : ControllerBase
@@ -67,12 +116,17 @@ public class PlaylistController(IMediator mediator) : ControllerBase
[HttpGet("/api/playlists/{id:int}/items", Name = "GetPlaylistItems")]
[HttpPost("/api/playlists", Name = "CreatePlaylistApi")]
[Tags("Playlists")]
[EndpointSummary("Create a playlist")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CreatePlaylist(
[Required][FromBody]CreatePlaylistRequestrequest,
CancellationTokencancellationToken)
@ -85,6 +139,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
@@ -85,6 +139,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
[HttpDelete("/api/playlists/{id:int}", Name = "DeletePlaylist")]
@ -94,6 +149,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
@@ -94,6 +149,7 @@ public class PlaylistController(IMediator mediator) : ControllerBase
[HttpPut("/api/playlists/{id:int}/items", Name = "ReplacePlaylistItems")]
@ -28,12 +29,14 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -28,12 +29,14 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpGet("/api/playouts/block", Name = "GetBlockPlayouts")]
@ -43,6 +46,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -43,6 +46,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpGet("/api/playouts/{id:int}/items", Name = "GetPlayoutItems")]
@ -54,6 +58,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -54,6 +58,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/classic", Name = "CreateClassicPlayout")]
@ -66,6 +71,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -66,6 +71,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/block", Name = "CreateBlockPlayout")]
@ -78,6 +84,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -78,6 +84,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/sequential", Name = "CreateSequentialPlayout")]
@ -90,6 +97,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -90,6 +97,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/scripted", Name = "CreateScriptedPlayout")]
@ -102,6 +110,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -102,6 +110,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/external-json", Name = "CreateExternalJsonPlayout")]
[Tags("Playouts")]
[EndpointSummary("Create an external JSON playout")]
@ -114,6 +123,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -114,6 +123,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpDelete("/api/playouts/{id:int}", Name = "DeletePlayout")]
@ -123,6 +133,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -123,6 +133,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/{id:int}/build", Name = "BuildPlayout")]
@ -132,6 +143,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -132,6 +143,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/{id:int}/reset", Name = "ResetPlayout")]
@ -141,6 +153,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -141,6 +153,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpPost("/api/playouts/reset-all", Name = "ResetAllPlayouts")]
@ -150,6 +163,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
@@ -150,6 +163,7 @@ public class PlayoutController(ChannelWriter<IBackgroundServiceRequest> workerCh
[HttpGet("/api/playouts/warnings/count", Name = "GetPlayoutWarningsCount")]
@ -30,18 +32,21 @@ public class PlexController(IMediator mediator) : ControllerBase
@@ -30,18 +32,21 @@ public class PlexController(IMediator mediator) : ControllerBase
[HttpGet("/api/plex/sources/{id:int}/libraries", Name = "GetPlexLibraries")]
@ -57,6 +62,7 @@ public class PlexController(IMediator mediator) : ControllerBase
@@ -57,6 +62,7 @@ public class PlexController(IMediator mediator) : ControllerBase
[HttpPut("/api/plex/library-preferences", Name = "UpdatePlexLibraryPreferences")]
@ -28,6 +30,7 @@ public class ResolutionController(IMediator mediator) : ControllerBase
@@ -28,6 +30,7 @@ public class ResolutionController(IMediator mediator) : ControllerBase
[HttpPost("/api/resolutions", Name = "CreateCustomResolution")]
@ -40,6 +43,7 @@ public class ResolutionController(IMediator mediator) : ControllerBase
@@ -40,6 +43,7 @@ public class ResolutionController(IMediator mediator) : ControllerBase
[HttpDelete("/api/resolutions/{id:int}", Name = "DeleteCustomResolution")]
@ -25,12 +117,14 @@ public class ScheduleController(IMediator mediator) : ControllerBase
@@ -25,12 +117,14 @@ public class ScheduleController(IMediator mediator) : ControllerBase
[HttpGet("/api/schedules/all", Name = "GetAllSchedulesList")]
@ -40,12 +134,17 @@ public class ScheduleController(IMediator mediator) : ControllerBase
@@ -40,12 +134,17 @@ public class ScheduleController(IMediator mediator) : ControllerBase
[HttpGet("/api/schedules/{id:int}/items", Name = "GetScheduleItems")]
[HttpPost("/api/schedules", Name = "CreateSchedule")]
[Tags("Schedules")]
[EndpointSummary("Create a schedule")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CreateSchedule(
[Required][FromBody]CreateScheduleRequestrequest,
CancellationTokencancellationToken)
@ -65,6 +164,7 @@ public class ScheduleController(IMediator mediator) : ControllerBase
@@ -65,6 +164,7 @@ public class ScheduleController(IMediator mediator) : ControllerBase
[HttpDelete("/api/schedules/{id:int}", Name = "DeleteSchedule")]
@ -74,6 +174,7 @@ public class ScheduleController(IMediator mediator) : ControllerBase
@@ -74,6 +174,7 @@ public class ScheduleController(IMediator mediator) : ControllerBase
[HttpPost("/api/schedules/{id:int}/copy", Name = "CopySchedule")]
@ -16,6 +16,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -16,6 +16,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -30,6 +31,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -30,6 +31,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_collection", Name = "AddCollection")]
[Tags("Scripted Content")]
[EndpointSummary("Add a collection")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddCollection(
[FromRoute]
GuidbuildId,
@ -55,6 +57,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -55,6 +57,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -82,6 +85,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -82,6 +85,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_multi_collection", Name = "AddMultiCollection")]
[Tags("Scripted Content")]
[EndpointSummary("Add a multi-collection")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddMultiCollection(
[FromRoute]
GuidbuildId,
@ -107,6 +111,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -107,6 +111,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_playlist", Name = "AddPlaylist")]
[Tags("Scripted Content")]
[EndpointSummary("Add a playlist")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddPlaylist(
[FromRoute]
GuidbuildId,
@ -127,6 +132,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -127,6 +132,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -150,6 +156,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -150,6 +156,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_search", Name = "AddSearch")]
[Tags("Scripted Content")]
[EndpointSummary("Add a search query")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddSearch(
[FromRoute]
GuidbuildId,
@ -175,6 +182,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -175,6 +182,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_smart_collection", Name = "AddSmartCollection")]
[Tags("Scripted Content")]
[EndpointSummary("Add a smart collection")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddSmartCollection(
[FromRoute]
GuidbuildId,
@ -200,6 +208,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -200,6 +208,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_show", Name = "AddShow")]
[Tags("Scripted Content")]
[EndpointSummary("Add a show")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddShow(
[FromRoute]
GuidbuildId,
@ -225,6 +234,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -225,6 +234,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -246,6 +256,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -246,6 +256,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_count", Name = "AddCount")]
[Tags("Scripted Scheduling")]
[EndpointSummary("Add a specific number of content items")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>AddCount(
[FromRoute]
GuidbuildId,
@ -276,6 +287,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -276,6 +287,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("add_duration", Name = "AddDuration")]
[Tags("Scripted Scheduling")]
[EndpointSummary("Add content for a specific duration")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>AddDuration(
[FromRoute]
GuidbuildId,
@ -311,6 +323,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -311,6 +323,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("pad_to_next", Name = "PadToNext")]
[Tags("Scripted Scheduling")]
[EndpointSummary("Add content until a specific minutes interval")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>PadToNext(
[FromRoute]GuidbuildId,
[FromBody]PlayoutPadToNextrequest)
@ -344,6 +357,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -344,6 +357,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("pad_until", Name = "PadUntil")]
[Tags("Scripted Scheduling")]
[EndpointSummary("Add content until a specified time of day")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>PadUntil(
[FromRoute]GuidbuildId,
[FromBody]PlayoutPadUntilrequest)
@ -378,6 +392,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -378,6 +392,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("pad_until_exact", Name = "PadUntilExact")]
[Tags("Scripted Scheduling")]
[EndpointSummary("Add content until an exact time")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>PadUntilExact(
[FromRoute]
GuidbuildId,
@ -413,6 +428,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -413,6 +428,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -437,6 +453,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -437,6 +453,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("start_epg_group", Name = "StartEpgGroup")]
@ -452,6 +469,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -452,6 +469,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("stop_epg_group", Name = "StopEpgGroup")]
@ -467,6 +485,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -467,6 +485,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("graphics_on", Name = "GraphicsOn")]
[Tags("Scripted Control")]
[EndpointSummary("Turn on graphics elements")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>GraphicsOn(
[FromRoute]
GuidbuildId,
@ -487,6 +506,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -487,6 +506,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("graphics_off", Name = "GraphicsOff")]
[Tags("Scripted Control")]
[EndpointSummary("Turn off graphics elements")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>GraphicsOff(
[FromRoute]
GuidbuildId,
@ -507,6 +527,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -507,6 +527,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -522,6 +543,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -522,6 +543,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("watermark_off", Name = "WatermarkOff")]
@ -537,6 +559,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -537,6 +559,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -552,6 +575,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -552,6 +575,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -567,6 +591,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -567,6 +591,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("skip_items", Name = "SkipItems")]
[Tags("Scripted Control")]
[EndpointSummary("Skip a specific number of items")]
@ -582,6 +607,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -582,6 +607,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@ -597,6 +623,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -597,6 +623,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("wait_until_exact", Name = "WaitUntilExact")]
[Tags("Scripted Control")]
[EndpointSummary("Wait until an exact time")]
[EndpointGroupName("general")]
publicActionResult<PlayoutContext>WaitUntilExact(
[FromRoute]
GuidbuildId,
@ -617,6 +644,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
@@ -617,6 +644,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP
[HttpPost("wait_until", Name = "WaitUntil")]
[Tags("Scripted Control")]
[EndpointSummary("Wait until the specified time of day")]
@ -20,6 +21,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -20,6 +21,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/movies", Name = "SearchMovies")]
@ -30,6 +32,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -30,6 +32,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/shows", Name = "SearchShows")]
@ -40,6 +43,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -40,6 +43,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/episodes", Name = "SearchEpisodes")]
@ -50,6 +54,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -50,6 +54,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/artists", Name = "SearchArtists")]
@ -60,6 +65,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -60,6 +65,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/music-videos", Name = "SearchMusicVideos")]
@ -70,6 +76,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -70,6 +76,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/songs", Name = "SearchSongs")]
@ -80,6 +87,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -80,6 +87,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpGet("/api/search/images", Name = "SearchImages")]
@ -90,6 +98,7 @@ public class SearchController(IMediator mediator) : ControllerBase
@@ -90,6 +98,7 @@ public class SearchController(IMediator mediator) : ControllerBase
[HttpPost("/api/search/rebuild", Name = "RebuildSearchIndex")]
[HttpPost("/api/collections/smart/new", Name = "CreateSmartCollection")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>AddOne(
[Required][FromBody]
CreateSmartCollectionrequest)
@ -26,6 +27,7 @@ public class SmartCollectionController(IMediator mediator) : ControllerBase
@@ -26,6 +27,7 @@ public class SmartCollectionController(IMediator mediator) : ControllerBase
@ -35,6 +37,7 @@ public class SmartCollectionController(IMediator mediator) : ControllerBase
@@ -35,6 +37,7 @@ public class SmartCollectionController(IMediator mediator) : ControllerBase
@ -34,6 +36,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -34,6 +36,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpDelete("/api/templates/groups/{id:int}", Name = "DeleteTemplateGroup")]
@ -44,18 +47,21 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -44,18 +47,21 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpGet("/api/templates/groups/{groupId:int}/templates", Name = "GetTemplatesByGroup")]
@ -65,12 +71,14 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -65,12 +71,14 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpGet("/api/templates/{id:int}/items", Name = "GetTemplateItems")]
[HttpPost("/api/templates", Name = "CreateTemplate")]
[Tags("Templates")]
[EndpointSummary("Create a template")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CreateTemplate(
[Required][FromBody]CreateTemplateRequestrequest,
CancellationTokencancellationToken)
@ -83,6 +91,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -83,6 +91,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpDelete("/api/templates/{id:int}", Name = "DeleteTemplate")]
@ -92,6 +101,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -92,6 +101,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpPost("/api/templates/{id:int}/copy", Name = "CopyTemplate")]
[Tags("Templates")]
[EndpointSummary("Copy a template")]
[EndpointGroupName("general")]
publicasyncTask<IActionResult>CopyTemplate(
intid,
[Required][FromBody]CopyTemplateRequestrequest,
@ -105,6 +115,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
@@ -105,6 +115,7 @@ public class TemplateController(IMediator mediator) : ControllerBase
[HttpPut("/api/templates/{id:int}/items", Name = "ReplaceTemplateItems")]
@ -23,6 +24,7 @@ public class TraktController(IMediator mediator) : ControllerBase
@@ -23,6 +24,7 @@ public class TraktController(IMediator mediator) : ControllerBase
[HttpGet("/api/trakt/lists/{id:int}", Name = "GetTraktListById")]
@ -32,6 +34,7 @@ public class TraktController(IMediator mediator) : ControllerBase
@@ -32,6 +34,7 @@ public class TraktController(IMediator mediator) : ControllerBase
[HttpPut("/api/trakt/lists/{id:int}", Name = "UpdateTraktList")]
@ -45,6 +48,7 @@ public class TraktController(IMediator mediator) : ControllerBase
@@ -45,6 +48,7 @@ public class TraktController(IMediator mediator) : ControllerBase
[HttpDelete("/api/trakt/lists/{id:int}", Name = "DeleteTraktList")]
@ -54,6 +58,7 @@ public class TraktController(IMediator mediator) : ControllerBase
@@ -54,6 +58,7 @@ public class TraktController(IMediator mediator) : ControllerBase
[HttpPost("/api/trakt/lists/{id:int}/match", Name = "MatchTraktListItems")]
@ -33,6 +35,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
@@ -33,6 +35,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
[HttpPost("/api/watermarks", Name = "CreateWatermark")]
@ -65,6 +68,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
@@ -65,6 +68,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
[HttpPut("/api/watermarks/{id:int}", Name = "UpdateWatermark")]
@ -99,6 +103,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
@@ -99,6 +103,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
[HttpDelete("/api/watermarks/{id:int}", Name = "DeleteWatermark")]
@ -108,6 +113,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
@@ -108,6 +113,7 @@ public class WatermarkController(IMediator mediator) : ControllerBase
[HttpPost("/api/watermarks/{id:int}/copy", Name = "CopyWatermark")]