diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-15 22:17:48 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-15 22:17:48 -0400 |
| commit | 2ce9e05d2fc818b031f2ab12bc50ffae035033ed (patch) | |
| tree | 8c7b67c7090f5e9966c11f9b7d9411dac78533f2 /MediaBrowser.Api | |
| parent | ab5f8ed13679dbe1763cafc599a8f566a36a4a14 (diff) | |
add new playback checkin endpoints
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/SessionsService.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 77 |
2 files changed, 59 insertions, 40 deletions
diff --git a/MediaBrowser.Api/SessionsService.cs b/MediaBrowser.Api/SessionsService.cs index b71cf67b66..c6b3cce7d9 100644 --- a/MediaBrowser.Api/SessionsService.cs +++ b/MediaBrowser.Api/SessionsService.cs @@ -41,7 +41,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } /// <summary> /// Artist, Genre, Studio, Person, or any kind of BaseItem @@ -82,7 +82,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } /// <summary> /// Artist, Genre, Studio, Person, or any kind of BaseItem @@ -114,7 +114,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } /// <summary> /// Gets or sets the position to seek to @@ -138,7 +138,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } /// <summary> /// Gets or sets the command. @@ -156,7 +156,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } /// <summary> /// Gets or sets the command. @@ -174,7 +174,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } } [Route("/Sessions/{Id}/Message", "POST", Summary = "Issues a command to a client to display a message to the user")] @@ -185,7 +185,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The id.</value> [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } [ApiMember(Name = "Text", Description = "The message text.", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] public string Text { get; set; } @@ -201,7 +201,7 @@ namespace MediaBrowser.Api public class AddUserToSession : IReturnVoid { [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } [ApiMember(Name = "UserId", Description = "UserId Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public Guid UserId { get; set; } @@ -211,7 +211,7 @@ namespace MediaBrowser.Api public class RemoveUserFromSession : IReturnVoid { [ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public Guid Id { get; set; } + public string Id { get; set; } [ApiMember(Name = "UserId", Description = "UserId Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public Guid UserId { get; set; } @@ -423,9 +423,9 @@ namespace MediaBrowser.Api { if (string.IsNullOrWhiteSpace(request.Id)) { - request.Id = GetSession().Id.ToString("N"); + request.Id = GetSession().Id; } - _sessionManager.ReportCapabilities(new Guid(request.Id), new SessionCapabilities + _sessionManager.ReportCapabilities(request.Id, new SessionCapabilities { PlayableMediaTypes = request.PlayableMediaTypes.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(), diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index a7e5c71e73..649f2ae02d 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -9,6 +9,7 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using MediaBrowser.Model.Serialization; +using MediaBrowser.Model.Session; using ServiceStack; using System; using System.Collections.Generic; @@ -220,6 +221,24 @@ namespace MediaBrowser.Api.UserLibrary public string Id { get; set; } } + [Route("/Sessions/Playing", "POST")] + [Api(Description = "Reports playback has started within a session")] + public class ReportPlaybackStart : PlaybackStartInfo, IReturnVoid + { + } + + [Route("/Sessions/Playing/Progress", "POST")] + [Api(Description = "Reports playback progress within a session")] + public class ReportPlaybackProgress : PlaybackProgressInfo, IReturnVoid + { + } + + [Route("/Sessions/Playing/Stopped", "POST")] + [Api(Description = "Reports playback has stopped within a session")] + public class ReportPlaybackStopped : PlaybackStopInfo, IReturnVoid + { + } + /// <summary> /// Class OnPlaybackStart /// </summary> @@ -740,24 +759,26 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="request">The request.</param> public void Post(OnPlaybackStart request) { - var user = _userManager.GetUserById(request.UserId); - - var item = _dtoService.GetItemByDtoId(request.Id, user.Id); - var queueableMediaTypes = (request.QueueableMediaTypes ?? string.Empty); - var info = new PlaybackInfo + Post(new ReportPlaybackStart { CanSeek = request.CanSeek, - Item = item, - SessionId = GetSession(_sessionManager).Id, + ItemId = request.Id, QueueableMediaTypes = queueableMediaTypes.Split(',').ToList(), MediaSourceId = request.MediaSourceId, AudioStreamIndex = request.AudioStreamIndex, SubtitleStreamIndex = request.SubtitleStreamIndex - }; + }); + } - _sessionManager.OnPlaybackStart(info); + public void Post(ReportPlaybackStart request) + { + request.SessionId = GetSession(_sessionManager).Id; + + var task = _sessionManager.OnPlaybackStart(request); + + Task.WaitAll(task); } /// <summary> @@ -766,24 +787,24 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="request">The request.</param> public void Post(OnPlaybackProgress request) { - var user = _userManager.GetUserById(request.UserId); - - var item = _dtoService.GetItemByDtoId(request.Id, user.Id); - - var info = new PlaybackProgressInfo + Post(new ReportPlaybackProgress { - Item = item, + ItemId = request.Id, PositionTicks = request.PositionTicks, IsMuted = request.IsMuted, IsPaused = request.IsPaused, - SessionId = GetSession(_sessionManager).Id, MediaSourceId = request.MediaSourceId, AudioStreamIndex = request.AudioStreamIndex, SubtitleStreamIndex = request.SubtitleStreamIndex, VolumeLevel = request.VolumeLevel - }; + }); + } + + public void Post(ReportPlaybackProgress request) + { + request.SessionId = GetSession(_sessionManager).Id; - var task = _sessionManager.OnPlaybackProgress(info); + var task = _sessionManager.OnPlaybackProgress(request); Task.WaitAll(task); } @@ -794,21 +815,19 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="request">The request.</param> public void Delete(OnPlaybackStopped request) { - var user = _userManager.GetUserById(request.UserId); - - var item = _dtoService.GetItemByDtoId(request.Id, user.Id); - - var session = GetSession(_sessionManager); - - var info = new PlaybackStopInfo + Post(new ReportPlaybackStopped { - Item = item, + ItemId = request.Id, PositionTicks = request.PositionTicks, - SessionId = session.Id, MediaSourceId = request.MediaSourceId - }; + }); + } + + public void Post(ReportPlaybackStopped request) + { + request.SessionId = GetSession(_sessionManager).Id; - var task = _sessionManager.OnPlaybackStopped(info); + var task = _sessionManager.OnPlaybackStopped(request); Task.WaitAll(task); } |
