diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-13 15:24:34 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-13 15:24:34 -0400 |
| commit | 5231cab777e37c908ef1650bae86c7b0ecb32499 (patch) | |
| tree | d93cddd0a6bd05f1945fd9c4110db2498e74c8ba | |
| parent | 25d2a57aca5f8f1999ecf6f8b9cf6a51a5317383 (diff) | |
added ability to mark IBN items as favorites
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.WebDashboard/ApiClient.js | 64 | ||||
| -rw-r--r-- | MediaBrowser.WebDashboard/packages.config | 2 |
4 files changed, 48 insertions, 27 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs index f872fb680..e068eb216 100644 --- a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Persistence; +using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Persistence; using ServiceStack.ServiceHost; using System; using System.Threading; @@ -146,7 +147,7 @@ namespace MediaBrowser.Api.UserLibrary // Get the user data for this item var data = UserDataRepository.GetUserData(request.UserId, request.Name).Result; - return ToOptimizedResult(data); + return ToOptimizedResult(DtoBuilder.GetUserItemDataDto(data)); } /// <summary> @@ -175,7 +176,7 @@ namespace MediaBrowser.Api.UserLibrary /// Deletes the specified request. /// </summary> /// <param name="request">The request.</param> - public void Delete(MarkItemByNameFavorite request) + public void Delete(UnmarkItemByNameFavorite request) { var task = MarkFavorite(request.UserId, request.Name, false); diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 0da4da356..0c47013bf 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -682,7 +682,7 @@ namespace MediaBrowser.Controller.Dto /// <param name="data">The data.</param> /// <returns>DtoUserItemData.</returns> /// <exception cref="System.ArgumentNullException"></exception> - public UserItemDataDto GetUserItemDataDto(UserItemData data) + public static UserItemDataDto GetUserItemDataDto(UserItemData data) { if (data == null) { diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js index 65012f94d..4c88b35c3 100644 --- a/MediaBrowser.WebDashboard/ApiClient.js +++ b/MediaBrowser.WebDashboard/ApiClient.js @@ -1724,12 +1724,12 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; /** - * Updates a user's favorite status for a person. + * Updates a user's favorite status for an item by name. * @param {String} userId * @param {String} name * @param {Boolean} isFavorite */ - self.updateFavoritePersonStatus = function (userId, name, isFavorite) { + self.updateItemByNameFavoriteStatus = function (userId, name, isFavorite) { if (!userId) { throw new Error("null userId"); @@ -1739,7 +1739,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/FavoritePersons/" + name); + var url = self.getUrl("Users/" + userId + "/ItemsByName/Favorites/" + name); var method = isFavorite ? "POST" : "DELETE"; @@ -1751,12 +1751,12 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; /** - * Updates a user's favorite status for a genre. - * @param {String} userId - * @param {String} name - * @param {Boolean} isFavorite - */ - self.updateFavoriteGenreStatus = function (userId, name, isFavorite) { + * Updates a user's rating for an item by name. + * @param {String} userId + * @param {String} name + * @param {Boolean} likes + */ + self.updateItemByNameRating = function (userId, name, likes) { if (!userId) { throw new Error("null userId"); @@ -1766,24 +1766,46 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/FavoriteGenre/" + name); + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/Rating", { + likes: likes + }); - var method = isFavorite ? "POST" : "DELETE"; + return self.ajax({ + type: "POST", + url: url + }); + }; + + /** + * Clears a user's rating for an item by name. + * @param {String} userId + * @param {String} name + */ + self.clearItemByNameRating = function (userId, name) { + + if (!userId) { + throw new Error("null userId"); + } + + if (!name) { + throw new Error("null name"); + } + + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/Rating"); return self.ajax({ - type: method, + type: "DELETE", url: url, dataType: "json" }); }; /** - * Updates a user's favorite status for a studio. - * @param {String} userId - * @param {String} name - * @param {Boolean} isFavorite - */ - self.updateFavoriteStudioStatus = function (userId, name, isFavorite) { + * Gets the full user data object for an item by name. + * @param {String} userId + * @param {String} name + */ + self.getItembyNameUserData = function (userId, name) { if (!userId) { throw new Error("null userId"); @@ -1793,12 +1815,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { throw new Error("null name"); } - var url = self.getUrl("Users/" + userId + "/FavoriteStudios/" + name); - - var method = isFavorite ? "POST" : "DELETE"; + var url = self.getUrl("Users/" + userId + "/ItemsByName/" + name + "/UserData"); return self.ajax({ - type: method, + type: "GET", url: url, dataType: "json" }); diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 74c1b370f..01740f591 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="MediaBrowser.ApiClient.Javascript" version="3.0.74" targetFramework="net45" /> + <package id="MediaBrowser.ApiClient.Javascript" version="3.0.76" targetFramework="net45" /> <package id="ServiceStack.Common" version="3.9.43" targetFramework="net45" /> <package id="ServiceStack.Text" version="3.9.43" targetFramework="net45" /> </packages>
\ No newline at end of file |
