diff --git a/utils/getAboutMe.ts b/utils/getAboutMe.ts new file mode 100644 index 0000000..9f67a29 --- /dev/null +++ b/utils/getAboutMe.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.about + } else { + return profile.user.about + } +} \ No newline at end of file diff --git a/utils/getFriendsSince.ts b/utils/getFriendsSince.ts new file mode 100644 index 0000000..3f6d859 --- /dev/null +++ b/utils/getFriendsSince.ts @@ -0,0 +1,21 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +const { fetchFriends } = useApi(); + +export default async (profile: UserResponse | GuildMemberResponse): Promise => { + let user_uuid: string; + + if ("username" in profile) { + user_uuid = profile.uuid + } else { + user_uuid = profile.user_uuid + } + + const friends = await fetchFriends() + const friend = friends.find(friend => friend.uuid === user_uuid); + if (friend?.friends_since) { + return new Date(friend.friends_since); + } + + return null +} \ No newline at end of file diff --git a/utils/getGuildJoinDate.ts b/utils/getGuildJoinDate.ts new file mode 100644 index 0000000..1b89e9a --- /dev/null +++ b/utils/getGuildJoinDate.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): Date | null => { + if ("username" in profile) { + return null + } else { + return uuidToDate(profile.uuid) + } +} \ No newline at end of file diff --git a/utils/getPronouns.ts b/utils/getPronouns.ts new file mode 100644 index 0000000..b7cb55d --- /dev/null +++ b/utils/getPronouns.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.pronouns + } else { + return profile.user.pronouns + } +} \ No newline at end of file diff --git a/utils/getRegistrationDate.ts b/utils/getRegistrationDate.ts new file mode 100644 index 0000000..010d871 --- /dev/null +++ b/utils/getRegistrationDate.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): Date | null => { + if ("username" in profile) { + return uuidToDate(profile.uuid) + } else { + return uuidToDate(profile.user_uuid) + } +} \ No newline at end of file diff --git a/utils/getUsername.ts b/utils/getUsername.ts new file mode 100644 index 0000000..ba0dfbb --- /dev/null +++ b/utils/getUsername.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string => { + if ("username" in profile) { + return profile.username + } else { + return profile.user.username + } +} \ No newline at end of file diff --git a/utils/getUuid.ts b/utils/getUuid.ts new file mode 100644 index 0000000..0bc7316 --- /dev/null +++ b/utils/getUuid.ts @@ -0,0 +1,9 @@ +import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; + +export default (profile: UserResponse | GuildMemberResponse): string | null => { + if ("username" in profile) { + return profile.uuid + } else { + return profile.user.uuid + } +} \ No newline at end of file diff --git a/utils/uuidToDate.ts b/utils/uuidToDate.ts new file mode 100644 index 0000000..f0ab6f3 --- /dev/null +++ b/utils/uuidToDate.ts @@ -0,0 +1,6 @@ +export default (uuid: string): Date => { + const timeHex = uuid.substring(0, 8) + uuid.substring(9, 13); + const timestamp = parseInt(timeHex, 16); + + return new Date(timestamp); +} \ No newline at end of file