mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Merge branch 'pleroma-conf' into 'main'
Remove `@/config.ts` import from utils/pleroma.ts See merge request soapbox-pub/ditto!699
This commit is contained in:
commit
ddf1a9d6dc
3 changed files with 18 additions and 13 deletions
|
|
@ -7,9 +7,7 @@ import { lookupPubkey } from '@/utils/lookup.ts';
|
||||||
import { getPleromaConfigs } from '@/utils/pleroma.ts';
|
import { getPleromaConfigs } from '@/utils/pleroma.ts';
|
||||||
|
|
||||||
const frontendConfigController: AppController = async (c) => {
|
const frontendConfigController: AppController = async (c) => {
|
||||||
const { relay, signal } = c.var;
|
const configDB = await getPleromaConfigs(c.var);
|
||||||
|
|
||||||
const configDB = await getPleromaConfigs(relay, signal);
|
|
||||||
const frontendConfig = configDB.get(':pleroma', ':frontend_configurations');
|
const frontendConfig = configDB.get(':pleroma', ':frontend_configurations');
|
||||||
|
|
||||||
if (frontendConfig) {
|
if (frontendConfig) {
|
||||||
|
|
@ -25,17 +23,15 @@ const frontendConfigController: AppController = async (c) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const configController: AppController = async (c) => {
|
const configController: AppController = async (c) => {
|
||||||
const { relay, signal } = c.var;
|
const configs = await getPleromaConfigs(c.var);
|
||||||
|
|
||||||
const configs = await getPleromaConfigs(relay, signal);
|
|
||||||
return c.json({ configs, need_reboot: false });
|
return c.json({ configs, need_reboot: false });
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Pleroma admin config controller. */
|
/** Pleroma admin config controller. */
|
||||||
const updateConfigController: AppController = async (c) => {
|
const updateConfigController: AppController = async (c) => {
|
||||||
const { conf, relay, signal } = c.var;
|
const { conf } = c.var;
|
||||||
|
|
||||||
const configs = await getPleromaConfigs(relay, signal);
|
const configs = await getPleromaConfigs(c.var);
|
||||||
const { configs: newConfigs } = z.object({ configs: z.array(configSchema) }).parse(await c.req.json());
|
const { configs: newConfigs } = z.object({ configs: z.array(configSchema) }).parse(await c.req.json());
|
||||||
|
|
||||||
configs.merge(newConfigs);
|
configs.merge(newConfigs);
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export const cspMiddleware = (): AppMiddleware => {
|
||||||
const { conf, relay } = c.var;
|
const { conf, relay } = c.var;
|
||||||
|
|
||||||
if (!configDBCache) {
|
if (!configDBCache) {
|
||||||
configDBCache = getPleromaConfigs(relay);
|
configDBCache = getPleromaConfigs({ conf, relay });
|
||||||
}
|
}
|
||||||
|
|
||||||
const { host, protocol, origin } = conf.url;
|
const { host, protocol, origin } = conf.url;
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,23 @@
|
||||||
import { NSchema as n, NStore } from '@nostrify/nostrify';
|
import { NSchema as n, NStore } from '@nostrify/nostrify';
|
||||||
|
|
||||||
import { Conf } from '@/config.ts';
|
|
||||||
import { configSchema } from '@/schemas/pleroma-api.ts';
|
import { configSchema } from '@/schemas/pleroma-api.ts';
|
||||||
import { PleromaConfigDB } from '@/utils/PleromaConfigDB.ts';
|
import { PleromaConfigDB } from '@/utils/PleromaConfigDB.ts';
|
||||||
|
|
||||||
export async function getPleromaConfigs(store: NStore, signal?: AbortSignal): Promise<PleromaConfigDB> {
|
import type { DittoConf } from '@ditto/conf';
|
||||||
const signer = Conf.signer;
|
|
||||||
|
interface GetPleromaConfigsOpts {
|
||||||
|
conf: DittoConf;
|
||||||
|
relay: NStore;
|
||||||
|
signal?: AbortSignal;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getPleromaConfigs(opts: GetPleromaConfigsOpts): Promise<PleromaConfigDB> {
|
||||||
|
const { conf, relay, signal } = opts;
|
||||||
|
|
||||||
|
const signer = conf.signer;
|
||||||
const pubkey = await signer.getPublicKey();
|
const pubkey = await signer.getPublicKey();
|
||||||
|
|
||||||
const [event] = await store.query([{
|
const [event] = await relay.query([{
|
||||||
kinds: [30078],
|
kinds: [30078],
|
||||||
authors: [pubkey],
|
authors: [pubkey],
|
||||||
'#d': ['pub.ditto.pleroma.config'],
|
'#d': ['pub.ditto.pleroma.config'],
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue