Working on template loader
This commit is contained in:
67
src/api.ts
67
src/api.ts
@ -52,6 +52,26 @@ type ChannelInfo = {
|
||||
name: string;
|
||||
};
|
||||
|
||||
type Template = {
|
||||
id: number;
|
||||
name: string;
|
||||
attachment: string | null;
|
||||
attachment_name: string | null;
|
||||
avatar: string | null;
|
||||
channel: string;
|
||||
content: string;
|
||||
embed_author: string;
|
||||
embed_author_url: string | null;
|
||||
embed_color: number;
|
||||
embed_description: string;
|
||||
embed_footer: string;
|
||||
embed_footer_url: string | null;
|
||||
embed_image_url: string | null;
|
||||
embed_thumbnail_url: string | null;
|
||||
embed_title: string;
|
||||
embed_fields: EmbedField[] | null;
|
||||
};
|
||||
|
||||
export function fetchUserInfo(): Promise<UserInfo> {
|
||||
return axios.get("/dashboard/api/user").then((resp) => resp.data) as Promise<UserInfo>;
|
||||
}
|
||||
@ -62,21 +82,34 @@ export function fetchUserGuilds(): Promise<GuildInfo[]> {
|
||||
>;
|
||||
}
|
||||
|
||||
export function fetchGuildReminders(guild: string): Promise<Reminder[]> {
|
||||
return axios
|
||||
.get(`/dashboard/api/guild/${guild}/reminders`)
|
||||
.then((resp) => resp.data)
|
||||
.then((value) =>
|
||||
value.map((reminder) => ({
|
||||
...reminder,
|
||||
utc_time: DateTime.fromISO(reminder.utc_time),
|
||||
expires: reminder.expires === null ? null : DateTime.fromISO(reminder.expires),
|
||||
})),
|
||||
) as Promise<Reminder[]>;
|
||||
}
|
||||
export const fetchGuildReminders = (guild: string) => ({
|
||||
queryKey: ["GUILD_REMINDERS", guild],
|
||||
queryFn: () =>
|
||||
axios
|
||||
.get(`/dashboard/api/guild/${guild}/reminders`)
|
||||
.then((resp) => resp.data)
|
||||
.then((value) =>
|
||||
value.map((reminder) => ({
|
||||
...reminder,
|
||||
utc_time: DateTime.fromISO(reminder.utc_time),
|
||||
expires: reminder.expires === null ? null : DateTime.fromISO(reminder.expires),
|
||||
})),
|
||||
) as Promise<Reminder[]>,
|
||||
});
|
||||
|
||||
export function fetchGuildChannels(guild: string): Promise<ChannelInfo[]> {
|
||||
return axios.get(`/dashboard/api/guild/${guild}/channels`).then((resp) => resp.data) as Promise<
|
||||
ChannelInfo[]
|
||||
>;
|
||||
}
|
||||
export const fetchGuildChannels = (guild: string) => ({
|
||||
queryKey: ["GUILD_CHANNELS", guild],
|
||||
queryFn: () =>
|
||||
axios.get(`/dashboard/api/guild/${guild}/channels`).then((resp) => resp.data) as Promise<
|
||||
ChannelInfo[]
|
||||
>,
|
||||
staleTime: 300,
|
||||
});
|
||||
|
||||
export const guildTemplatesQuery = (guild: string) => ({
|
||||
queryKey: ["GUILD_TEMPLATES", guild],
|
||||
queryFn: () =>
|
||||
axios.get(`/dashboard/api/guild/${guild}/channels`).then((resp) => resp.data) as Promise<
|
||||
Template[]
|
||||
>,
|
||||
});
|
||||
|
Reference in New Issue
Block a user