Merge branch 'fix-captcha-showing-up' into 'main'

Revert "Merge branch 'revert-70d30887' into 'main'"

Closes #269

See merge request soapbox-pub/ditto!601
This commit is contained in:
Alex Gleason 2024-12-03 23:24:59 +00:00
commit 5df47403ad

View file

@ -1,4 +1,4 @@
import { NostrFilter, NSchema as n } from '@nostrify/nostrify';
import { NostrEvent, NostrFilter, NSchema as n } from '@nostrify/nostrify';
import { nip19 } from 'nostr-tools';
import { z } from 'zod';
@ -20,6 +20,7 @@ import { hydrateEvents } from '@/storages/hydrate.ts';
import { bech32ToPubkey } from '@/utils.ts';
import { addTag, deleteTag, findReplyTag, getTagSet } from '@/utils/tags.ts';
import { getPubkeysBySearch } from '@/utils/search.ts';
import { MastodonAccount } from '@/entities/MastodonAccount.ts';
const usernameSchema = z
.string().min(1).max(30)
@ -288,12 +289,20 @@ const updateCredentialsController: AppController = async (c) => {
const pubkey = await signer.getPublicKey();
const body = await parseBody(c.req.raw);
const result = updateCredentialsSchema.safeParse(body);
const store = await Storages.db();
const signal = c.req.raw.signal;
if (!result.success) {
return c.json(result.error, 422);
}
const event = await updateEvent(
const keys = Object.keys(result.data);
let event: NostrEvent | undefined;
if (keys.length === 1 && keys[0] === 'pleroma_settings_store') {
event = (await store.query([{ kinds: [0], authors: [pubkey] }]))[0];
} else {
event = await updateEvent(
{ kinds: [0], authors: [pubkey], limit: 1 },
async (prev) => {
const meta = n.json().pipe(metadataSchema).catch({}).parse(prev.content);
@ -341,9 +350,17 @@ const updateCredentialsController: AppController = async (c) => {
},
c,
);
}
const settingsStore = result.data.pleroma_settings_store;
const account = await renderAccount(event, { withSource: true, settingsStore });
let account: MastodonAccount;
if (event) {
await hydrateEvents({ events: [event], store, signal });
account = await renderAccount(event, { withSource: true, settingsStore });
} else {
account = await accountFromPubkey(pubkey, { withSource: true, settingsStore });
}
if (settingsStore) {
await createEvent({