forked from engineering/crv2
update Formatters
parent
bc10712329
commit
dac548d82c
|
@ -0,0 +1,55 @@
|
||||||
|
import { GuildMember, User } from "discord.js";
|
||||||
|
import Partner, { PartnerCommissionType, PartnerRoleType } from "../database/Partner";
|
||||||
|
import { FormatNameOptions } from "./MemberUtil";
|
||||||
|
|
||||||
|
export default class Formatters {
|
||||||
|
public static formatStandardDate(date: Date | string | number): string {
|
||||||
|
const resolvedDate = new Date(date);
|
||||||
|
if (!resolvedDate) return "";
|
||||||
|
|
||||||
|
const year = resolvedDate.getFullYear();
|
||||||
|
const month = String(resolvedDate.getMonth() + 1).padStart(2, "0");
|
||||||
|
const day = String(resolvedDate.getDate()).padStart(2, "0");
|
||||||
|
const hours = String(resolvedDate.getHours()).padStart(2, "0");
|
||||||
|
const minutes = String(resolvedDate.getMinutes()).padStart(2, "0");
|
||||||
|
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||||
|
|
||||||
|
return `${year}-${month}-${day} @ ${hours}:${minutes} (${timeZone})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: comments and extended formatting
|
||||||
|
public static formatName(
|
||||||
|
target: GuildMember | User,
|
||||||
|
partner?: Partner | null
|
||||||
|
): FormatNameOptions {
|
||||||
|
console.debug(
|
||||||
|
`[MemberUtil] Formatting name for ${target.displayName} at url ${target instanceof GuildMember ? target.user.displayAvatarURL() : target.displayAvatarURL()}`
|
||||||
|
);
|
||||||
|
// if the role type is managerial, add a [k] to the end of the name
|
||||||
|
// if the partner exists, set the iconURL to the organizational logo
|
||||||
|
if (partner?.roleType == PartnerRoleType.MANAGERIAL) {
|
||||||
|
return {
|
||||||
|
text: `${target.displayName} [k]`,
|
||||||
|
iconURL: target.displayAvatarURL(),
|
||||||
|
};
|
||||||
|
} else if (partner?.commissionType == PartnerCommissionType.CONTRACTUAL) {
|
||||||
|
// if the commission type is contractual, add a [c] to the end of the name
|
||||||
|
return {
|
||||||
|
text: `${target.displayName} [c]`,
|
||||||
|
iconURL:
|
||||||
|
target instanceof GuildMember
|
||||||
|
? target.user.displayAvatarURL()
|
||||||
|
: target.displayAvatarURL(),
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
// otherwise, just set the author to the member's display name
|
||||||
|
return {
|
||||||
|
text: target.displayName,
|
||||||
|
iconURL:
|
||||||
|
target instanceof GuildMember
|
||||||
|
? target.user.displayAvatarURL()
|
||||||
|
: target.displayAvatarURL(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue