Ground-Zerro / Phobos Public
Code Issues Pull requests Actions Releases View on GitHub ↗
729 B typescript
import { WarpUpdateSchema } from '#db/repositories/warp/types';
import { maskWarp } from '#db/repositories/warp/service';

export default definePermissionEventHandler('admin', 'any', async ({ event }) => {
  const data = await readValidatedBody(
    event,
    validateZod(WarpUpdateSchema, event)
  );

  if (!(await Database.warp.isRegistered())) {
    throw createError({
      statusCode: 400,
      statusMessage: 'WARP is not registered.',
    });
  }

  await Database.warp.update(data);

  try {
    await WarpInterface.reapply();
  } catch (e) {
    throw createError({
      statusCode: 400,
      statusMessage: (e as Error).message,
    });
  }

  const warp = await Database.warp.get();
  return maskWarp(warp);
});