32 lines
1,014 B
TypeScript
32 lines
1,014 B
TypeScript
import axios from "axios";
|
|
import config from "./config";
|
|
import { tokenManager } from "./tokenManager";
|
|
import logger from "@server/logger";
|
|
|
|
export async function getCountryCodeForIp(
|
|
ip: string
|
|
): Promise<string | undefined> {
|
|
try {
|
|
const response = await axios.get(
|
|
`${config.getRawConfig().managed?.endpoint}/api/v1/hybrid/geoip/${ip}`,
|
|
await tokenManager.getAuthHeader()
|
|
);
|
|
|
|
return response.data.data.countryCode;
|
|
} catch (error) {
|
|
if (axios.isAxiosError(error)) {
|
|
logger.error("Error fetching config in verify session:", {
|
|
message: error.message,
|
|
code: error.code,
|
|
status: error.response?.status,
|
|
statusText: error.response?.statusText,
|
|
url: error.config?.url,
|
|
method: error.config?.method
|
|
});
|
|
} else {
|
|
logger.error("Error fetching config in verify session:", error);
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|