User profile request caching
This commit is contained in:
+2
-2
@@ -1,6 +1,7 @@
|
||||
import { Message, Server } from "@/types/types";
|
||||
import axios from "axios";
|
||||
import { Dispatch, RefObject, SetStateAction } from "react";
|
||||
import { get } from "./request";
|
||||
|
||||
export default async function auth(
|
||||
id: string,
|
||||
@@ -12,8 +13,7 @@ export default async function auth(
|
||||
) {
|
||||
console.log("Authenticating with server id:", id);
|
||||
|
||||
const ip = ((await axios.get(`/api/server/${id}`)).data as any)
|
||||
.address as string;
|
||||
const ip = ((await get(`/api/server/${id}`)).data as any).address as string;
|
||||
|
||||
console.log("Authenticating with server at:", ip);
|
||||
const server_auth = (
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import Axios from "axios";
|
||||
import { CacheRequestConfig, setupCache } from "axios-cache-interceptor";
|
||||
|
||||
const axiosInstance = Axios.create({});
|
||||
const axios = setupCache(axiosInstance);
|
||||
|
||||
export interface Response<T> {
|
||||
data: T;
|
||||
status: number;
|
||||
statusText: string;
|
||||
headers: { [index: string]: any };
|
||||
cached: boolean;
|
||||
}
|
||||
|
||||
export async function get<T = any, D = any>(
|
||||
url: string,
|
||||
onResponse?: (response: Response<T>) => void,
|
||||
config?: CacheRequestConfig<T, D>
|
||||
): Promise<Response<T>> {
|
||||
const response = (await axios.get<T, D>(
|
||||
url,
|
||||
config
|
||||
)) as unknown as Response<T>;
|
||||
|
||||
if (onResponse && response.cached) {
|
||||
Axios.get(url).then((response) =>
|
||||
onResponse(response as unknown as Response<T>)
|
||||
);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
Reference in New Issue
Block a user