1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-18 03:28:15 -05:00

fix json serialization of receipt status

This commit is contained in:
Kyle Spearrin 2019-09-18 17:43:17 -04:00
parent bed2a0ab7b
commit 9ddfe3e947

View File

@ -3,7 +3,9 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Utilities;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace Bit.Billing.Models namespace Bit.Billing.Models
{ {
@ -20,7 +22,7 @@ namespace Bit.Billing.Models
[JsonProperty("latest_receipt_info")] [JsonProperty("latest_receipt_info")]
public List<AppleTransaction> LatestReceiptInfo { get; set; } public List<AppleTransaction> LatestReceiptInfo { get; set; }
[JsonProperty("pending_renewal_info")] [JsonProperty("pending_renewal_info")]
public AppleRenewalInfo PendingRenewalInfo { get; set; } public List<AppleRenewalInfo> PendingRenewalInfo { get; set; }
public string GetOriginalTransactionId() public string GetOriginalTransactionId()
{ {
@ -67,7 +69,8 @@ namespace Bit.Billing.Models
public string ReceiptType { get; set; } public string ReceiptType { get; set; }
[JsonProperty("bundle_id")] [JsonProperty("bundle_id")]
public string BundleId { get; set; } public string BundleId { get; set; }
[JsonProperty("receipt_creation_date")] [JsonProperty("receipt_creation_date_ms")]
[JsonConverter(typeof(MsEpochConverter))]
public DateTime ReceiptCreationDate { get; set; } public DateTime ReceiptCreationDate { get; set; }
[JsonProperty("in_app")] [JsonProperty("in_app")]
public List<AppleTransaction> InApp { get; set; } public List<AppleTransaction> InApp { get; set; }
@ -99,14 +102,30 @@ namespace Bit.Billing.Models
public string TransactionId { get; set; } public string TransactionId { get; set; }
[JsonProperty("original_transaction_id")] [JsonProperty("original_transaction_id")]
public string OriginalTransactionId { get; set; } public string OriginalTransactionId { get; set; }
[JsonProperty("purchase_date")] [JsonProperty("purchase_date_ms")]
[JsonConverter(typeof(MsEpochConverter))]
public DateTime PurchaseDate { get; set; } public DateTime PurchaseDate { get; set; }
[JsonProperty("original_purchase_date")] [JsonProperty("original_purchase_date_ms")]
[JsonConverter(typeof(MsEpochConverter))]
public DateTime OriginalPurchaseDate { get; set; } public DateTime OriginalPurchaseDate { get; set; }
[JsonProperty("expires_date")] [JsonProperty("expires_date_ms")]
[JsonConverter(typeof(MsEpochConverter))]
public DateTime ExpiresDate { get; set; } public DateTime ExpiresDate { get; set; }
[JsonProperty("web_order_line_item_id")] [JsonProperty("web_order_line_item_id")]
public string WebOrderLineItemId { get; set; } public string WebOrderLineItemId { get; set; }
} }
public class MsEpochConverter : DateTimeConverterBase
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteRawValue(CoreHelpers.ToEpocMilliseconds((DateTime)value).ToString());
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return CoreHelpers.FromEpocMilliseconds(long.Parse(reader.Value.ToString()));
}
}
} }
} }