Compare commits
4 commits
1198f5c50e
...
7efe8da5b0
Author | SHA1 | Date | |
---|---|---|---|
7efe8da5b0 | |||
68f0de7c02 | |||
3f3d2082a9 | |||
b0875f7649 |
4 changed files with 7 additions and 11 deletions
|
@ -1,12 +1,10 @@
|
|||
import { unsafeCast } from "./unsafe-cast.js";
|
||||
|
||||
export type Promiseable<T> = {
|
||||
[K in keyof T]: Promise<T[K]> | T[K];
|
||||
};
|
||||
|
||||
export async function awaitAll<T>(obj: Promiseable<T>): Promise<T> {
|
||||
const target = {} as T;
|
||||
const keys = unsafeCast<(keyof T)[]>(Object.keys(obj));
|
||||
const keys = Object.keys(obj) as unknown as (keyof T)[];
|
||||
const values = Object.values(obj) as any[];
|
||||
|
||||
const resolvedValues = await Promise.all(
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
// unsafe type cast
|
||||
export function unsafeCast<T>(val: unknown): T {
|
||||
return val as T;
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
import { Users } from "@/models/index.js";
|
||||
import { publishInternalEvent } from "@/services/stream.js";
|
||||
import define from "../../define.js";
|
||||
import type { EmojiModPerm } from "@/models/entities/user.js";
|
||||
import { unsafeCast } from "@/prelude/unsafe-cast.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin"],
|
||||
|
@ -33,8 +31,12 @@ export default define(meta, paramDef, async (ps) => {
|
|||
);
|
||||
}
|
||||
|
||||
const _emojiModPerm =
|
||||
(ps.emojiModPerm as "unauthorized" | "add" | "mod" | "full") ??
|
||||
"unauthorized";
|
||||
|
||||
await Users.update(user.id, {
|
||||
emojiModPerm: unsafeCast<EmojiModPerm>(ps.emojiModPerm),
|
||||
emojiModPerm: _emojiModPerm,
|
||||
});
|
||||
|
||||
publishInternalEvent("userChangeModeratorState", {
|
||||
|
|
|
@ -17,7 +17,7 @@ export const paramDef = {
|
|||
required: ["userId", "text"],
|
||||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps) => {
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
const user = await Users.findOneBy({ id: ps.userId });
|
||||
|
||||
if (user == null) {
|
||||
|
|
Loading…
Reference in a new issue