3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-25 10:25:01 +00:00

Update templateSafeObjects.ts

This commit is contained in:
srqc 2023-01-12 18:50:10 -05:00 committed by GitHub
parent 81ca357945
commit 9a79749788
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@ import {
GuildMember, GuildMember,
Message, Message,
PartialGuildMember, PartialGuildMember,
PartialUser,
Role, Role,
Snowflake, Snowflake,
StageInstance, StageInstance,
@ -23,6 +24,8 @@ import {
SavedMessage, SavedMessage,
} from "../data/entities/SavedMessage"; } from "../data/entities/SavedMessage";
import { Case } from "../data/entities/Case"; import { Case } from "../data/entities/Case";
import { CounterValue } from "../data/entities/CounterValue";
import { number } from "io-ts";
type InputProps<T> = Omit< type InputProps<T> = Omit<
{ {
@ -200,6 +203,23 @@ export class TemplateSafeCase extends TemplateSafeValueContainer {
} }
} }
export class RankedCounterValue extends CounterValue {
rank?: number;
}
export class TemplateSafeCounterValue extends TemplateSafeValueContainer {
id: number;
counter_id: string;
user_id: string;
channel_id: string;
value: number;
rank?: number;
constructor(data: InputProps<TemplateSafeCounterValue>) {
super(data);
}
}
export class TemplateSafeMessage extends TemplateSafeValueContainer { export class TemplateSafeMessage extends TemplateSafeValueContainer {
id: string; id: string;
content: string; content: string;
@ -255,16 +275,25 @@ export function roleToTemplateSafeRole(role: Role): TemplateSafeRole {
}); });
} }
export function memberToTemplateSafeMember(member: GuildMember | PartialGuildMember): TemplateSafeMember { export function memberToTemplateSafeMember(
const templateSafeUser = userToTemplateSafeUser(member.user!); member?: GuildMember | PartialGuildMember | null,
user?: User | UnknownUser | null,
): TemplateSafeMember {
if (!member && !user) {
throw new Error(`No usable information received; cannot create template`);
}
user = user ?? member?.user;
const templateSafeUser = userToTemplateSafeUser(user!);
return new TemplateSafeMember({ return new TemplateSafeMember({
...templateSafeUser, ...templateSafeUser,
user: templateSafeUser, user: templateSafeUser,
nick: member.nickname ?? "*None*", nick: member?.nickname ?? "*None*",
roles: [...member.roles.cache.mapValues((r) => roleToTemplateSafeRole(r)).values()], roles: member ? [...member.roles.cache.mapValues((r) => roleToTemplateSafeRole(r)).values()] : [],
joinedAt: member.joinedTimestamp ?? undefined, joinedAt: member?.joinedTimestamp ?? undefined,
guildName: member.guild.name, guildName: member?.guild.name,
}); });
} }
@ -443,6 +472,17 @@ export function caseToTemplateSafeCase(theCase: Case): TemplateSafeCase {
}); });
} }
export function counterValueToTemplateSafeCounterValue(theCounterValue: RankedCounterValue): TemplateSafeCounterValue {
return new TemplateSafeCounterValue({
id: theCounterValue.id,
counter_id: theCounterValue.counter_id,
channel_id: theCounterValue.channel_id,
user_id: theCounterValue.user_id,
value: theCounterValue.value,
rank: theCounterValue.rank,
});
}
export function messageToTemplateSafeMessage(message: Message): TemplateSafeMessage { export function messageToTemplateSafeMessage(message: Message): TemplateSafeMessage {
return new TemplateSafeMessage({ return new TemplateSafeMessage({
id: message.id, id: message.id,