🐛 Use api to fetch magic spell instead of page data
This commit is contained in:
@@ -58,7 +58,7 @@ const submitting = ref(false)
|
|||||||
const done = ref(false)
|
const done = ref(false)
|
||||||
|
|
||||||
const spellTypes = [
|
const spellTypes = [
|
||||||
'Account Acivation',
|
'Account Activation',
|
||||||
'Account Deactivation',
|
'Account Deactivation',
|
||||||
'Account Deletion',
|
'Account Deletion',
|
||||||
'Reset Password',
|
'Reset Password',
|
||||||
@@ -66,12 +66,6 @@ const spellTypes = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
async function fetchSpell() {
|
async function fetchSpell() {
|
||||||
// @ts-ignore
|
|
||||||
if (window.__APP_DATA__ != null) {
|
|
||||||
// @ts-ignore
|
|
||||||
spell.value = window.__APP_DATA__['Spell']
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const resp = await fetch(`/api/spells/${encodeURIComponent(spellWord)}`)
|
const resp = await fetch(`/api/spells/${encodeURIComponent(spellWord)}`)
|
||||||
if (resp.status === 200) {
|
if (resp.status === 200) {
|
||||||
const data = await resp.json()
|
const data = await resp.json()
|
||||||
|
@@ -1,28 +0,0 @@
|
|||||||
using DysonNetwork.Shared.PageData;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using NodaTime;
|
|
||||||
|
|
||||||
namespace DysonNetwork.Pass.Pages.Data;
|
|
||||||
|
|
||||||
public class SpellPageData(AppDatabase db) : IPageDataProvider
|
|
||||||
{
|
|
||||||
public bool CanHandlePath(PathString path) => path.StartsWithSegments("/spells");
|
|
||||||
|
|
||||||
public async Task<IDictionary<string, object?>> GetAppDataAsync(HttpContext context)
|
|
||||||
{
|
|
||||||
var spellWord = context.Request.Path.Value!.Split('/').Last();
|
|
||||||
spellWord = Uri.UnescapeDataString(spellWord);
|
|
||||||
var now = SystemClock.Instance.GetCurrentInstant();
|
|
||||||
var spell = await db.MagicSpells
|
|
||||||
.Where(e => e.Spell == spellWord)
|
|
||||||
.Where(e => e.ExpiresAt == null || now < e.ExpiresAt)
|
|
||||||
.Where(e => e.AffectedAt == null || now >= e.AffectedAt)
|
|
||||||
.Include(e => e.Account)
|
|
||||||
.ThenInclude(e => e.Profile)
|
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
return new Dictionary<string, object?>
|
|
||||||
{
|
|
||||||
["Spell"] = spell
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@@ -34,7 +34,6 @@ builder.Services.AddAppScheduledJobs();
|
|||||||
|
|
||||||
builder.Services.AddTransient<IPageDataProvider, VersionPageData>();
|
builder.Services.AddTransient<IPageDataProvider, VersionPageData>();
|
||||||
builder.Services.AddTransient<IPageDataProvider, CaptchaPageData>();
|
builder.Services.AddTransient<IPageDataProvider, CaptchaPageData>();
|
||||||
builder.Services.AddTransient<IPageDataProvider, SpellPageData>();
|
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user