forked from Kieran/void.cat
Fix redis paywall config
This commit is contained in:
parent
edf26c2137
commit
983de173aa
@ -1,6 +1,4 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace VoidCat.Model.Paywall;
|
||||
namespace VoidCat.Model.Paywall;
|
||||
|
||||
public enum PaywallServices
|
||||
{
|
||||
@ -9,4 +7,8 @@ public enum PaywallServices
|
||||
}
|
||||
|
||||
public abstract record PaywallConfig(PaywallServices Service, PaywallMoney Cost);
|
||||
public record StrikePaywallConfig(string Handle, PaywallMoney Cost) : PaywallConfig(PaywallServices.Strike, Cost);
|
||||
|
||||
public record StrikePaywallConfig(PaywallServices Service, PaywallMoney Cost) : PaywallConfig(Service, Cost)
|
||||
{
|
||||
public string Handle { get; init; }
|
||||
}
|
@ -35,6 +35,8 @@ services.AddRouting();
|
||||
services.AddControllers().AddNewtonsoftJson((opt) =>
|
||||
{
|
||||
opt.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
|
||||
opt.SerializerSettings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor;
|
||||
opt.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
|
||||
});
|
||||
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||
.AddJwtBearer(options =>
|
||||
|
@ -17,7 +17,7 @@ public class RedisPaywallStore : IPaywallStore
|
||||
public async ValueTask<PaywallConfig?> GetConfig(Guid id)
|
||||
{
|
||||
var json = await _database.StringGetAsync(ConfigKey(id));
|
||||
var cfg = json.HasValue ? JsonConvert.DeserializeObject<PaywallConfig>(json) : default;
|
||||
var cfg = json.HasValue ? JsonConvert.DeserializeObject<PaywallBlank>(json) : default;
|
||||
return cfg?.Service switch
|
||||
{
|
||||
PaywallServices.Strike => JsonConvert.DeserializeObject<StrikePaywallConfig>(json),
|
||||
@ -44,4 +44,9 @@ public class RedisPaywallStore : IPaywallStore
|
||||
|
||||
private RedisKey ConfigKey(Guid id) => $"paywall:config:{id}";
|
||||
private RedisKey OrderKey(Guid id) => $"paywall:order:{id}";
|
||||
|
||||
internal class PaywallBlank
|
||||
{
|
||||
public PaywallServices Service { get; init; }
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user