aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/PluginService.cs22
-rw-r--r--MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs34
-rw-r--r--MediaBrowser.Common/Security/ISecurityManager.cs13
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