diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-10-16 14:13:06 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-10-16 14:13:06 -0400 |
| commit | 5a318ae00a41cd1dc201c78f6fdaa811ebdc8501 (patch) | |
| tree | ca9045a59b017abd345648fc27949b98e6bd2629 | |
| parent | a0b1ddf0a7fbe285ce44a971a6f073895b8c2521 (diff) | |
| parent | 5d74fcbb87e20fb1a52b6ad2650ced97e8ad12e7 (diff) | |
Merge branch 'dev' of https://github.com/MediaBrowser/Emby into dev
| -rw-r--r-- | MediaBrowser.Api/PluginService.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs | 34 | ||||
| -rw-r--r-- | MediaBrowser.Common/Security/ISecurityManager.cs | 13 |
3 files changed, 12 insertions, 57 deletions
diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index dc3d103eb..a7fd14bf0 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -122,24 +122,8 @@ namespace MediaBrowser.Api [Authenticated] public class RegisterAppstoreSale { - [ApiMember(Name = "Store", Description = "Store Name", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Store { get; set; } - [ApiMember(Name = "Application", Description = "Application id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Application { get; set; } - [ApiMember(Name = "Product", Description = "Product id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Product { get; set; } - [ApiMember(Name = "Type", Description = "Type of product (Product or Subscription)", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Type { get; set; } - [ApiMember(Name = "StoreId", Description = "Store User Id (if needed)", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")] - public string StoreId { get; set; } - [ApiMember(Name = "StoreToken", Description = "Unique ID for this purchase in the store", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string StoreToken { get; set; } - [ApiMember(Name = "Feature", Description = "Emby Feature Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Feature { get; set; } - [ApiMember(Name = "Email", Description = "Email address for purchase", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Email { get; set; } - [ApiMember(Name = "Amount", Description = "String representation of price (can have currency sign)", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string Amount { get; set; } + [ApiMember(Name = "Parameters", Description = "Java representation of parameters to pass through to admin server", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public string Parameters { get; set; } } /// <summary> @@ -296,7 +280,7 @@ namespace MediaBrowser.Api /// <returns></returns> public async Task Post(RegisterAppstoreSale request) { - await _securityManager.RegisterAppStoreSale(request.Store, request.Application, request.Product, request.Feature, request.Type, request.StoreId, request.StoreToken, request.Email, request.Amount); + await _securityManager.RegisterAppStoreSale(request.Parameters); } /// <summary> diff --git a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs index facaaeff9..d953012f1 100644 --- a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs +++ b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs @@ -190,43 +190,23 @@ namespace MediaBrowser.Common.Implementations.Security /// Register an app store sale with our back-end. It will validate the transaction with the store /// and then register the proper feature and then fill in the supporter key on success. /// </summary> - /// <param name="store"></param> - /// <param name="application"></param> - /// <param name="product"></param> - /// <param name="feature"></param> - /// <param name="type"></param> - /// <param name="storeId"></param> - /// <param name="storeToken"></param> - /// <param name="email"></param> - /// <param name="amt"></param> - public async Task RegisterAppStoreSale(string store, string application, string product, string feature, - string type, string storeId, string storeToken, string email, string amt) + /// <param name="parameters">Json parameters to send to admin server</param> + public async Task RegisterAppStoreSale(string parameters) { - var data = new Dictionary<string, string>() - { - {"store", store}, - {"application", application}, - {"product", product}, - {"feature", feature}, - {"type", type}, - {"storeId", storeId}, - {"token", storeToken}, - {"email", email}, - {"amt", amt} - }; - var options = new HttpRequestOptions() { Url = AppstoreRegUrl, CancellationToken = CancellationToken.None }; options.RequestHeaders.Add("X-Emby-Token", /*_appHost.SystemId*/ "08606E86D043"); + options.RequestContent = parameters; + options.RequestContentType = "application/json"; try { - using (var json = await _httpClient.Post(options, data).ConfigureAwait(false)) + using (var response = await _httpClient.Post(options).ConfigureAwait(false)) { - var reg = _jsonSerializer.DeserializeFromStream<RegRecord>(json); + var reg = _jsonSerializer.DeserializeFromStream<RegRecord>(response.Content); if (!String.IsNullOrEmpty(reg.key)) { SupporterKey = reg.key; @@ -236,7 +216,7 @@ namespace MediaBrowser.Common.Implementations.Security } catch (Exception e) { - _logger.ErrorException("Error registering appstore purchase {0}", e, _jsonSerializer.SerializeToString(data)); + _logger.ErrorException("Error registering appstore purchase {0}", e, parameters); //TODO - really need to write this to a file so we can re-try it automatically throw new ApplicationException("Error registering store sale"); } diff --git a/MediaBrowser.Common/Security/ISecurityManager.cs b/MediaBrowser.Common/Security/ISecurityManager.cs index 1b2e22a78..729de911b 100644 --- a/MediaBrowser.Common/Security/ISecurityManager.cs +++ b/MediaBrowser.Common/Security/ISecurityManager.cs @@ -50,16 +50,7 @@ namespace MediaBrowser.Common.Security /// <summary> /// Register and app store sale with our back-end /// </summary> - /// <param name="store"></param> - /// <param name="application"></param> - /// <param name="product"></param> - /// <param name="feature"></param> - /// <param name="type"></param> - /// <param name="storeId"></param> - /// <param name="storeToken"></param> - /// <param name="email"></param> - /// <param name="amt"></param> - Task RegisterAppStoreSale(string store, string application, string product, string feature, - string type, string storeId, string storeToken, string email, string amt); + /// <param name="parameters">Json parameters to pass to admin server</param> + Task RegisterAppStoreSale(string parameters); } }
\ No newline at end of file |
