fix: switch from URL objects to strings

This commit is contained in:
gauthier-th
2024-06-29 01:49:07 +02:00
committed by Gauthier
parent 15568b1f6b
commit 6bcaa672ad
4 changed files with 33 additions and 29 deletions

View File

@@ -224,18 +224,17 @@ class ExternalAPI {
endpoint: string,
params?: Record<string, string>,
overwriteBaseUrl?: string
): URL {
): string {
const baseUrl = overwriteBaseUrl || this.baseUrl;
const href =
baseUrl +
(baseUrl.endsWith('/') ? '' : '/') +
(endpoint.startsWith('/') ? endpoint.slice(1) : endpoint);
const url = new URL(href);
url.search = new URLSearchParams({
const searchParams = new URLSearchParams({
...this.params,
...params,
}).toString();
return url;
});
return `${href}?${searchParams.toString()}`;
}
private serializeCacheKey(
@@ -249,7 +248,7 @@ class ExternalAPI {
return `${this.baseUrl}${endpoint}${JSON.stringify(params)}`;
}
private async getDataFromResponse(response: Response): Promise<any> {
private async getDataFromResponse(response: Response) {
const contentType = response.headers.get('Content-Type')?.split(';')[0];
if (contentType === 'application/json') {
return await response.json();

View File

@@ -24,7 +24,6 @@ const UserWarnings: React.FC<UserWarningsProps> = ({ onClick }) => {
let res = null;
//check if a user has warnings
console.log(user);
if (user.warnings.length > 0) {
user.warnings.forEach((warning) => {
let link = '';

View File

@@ -166,12 +166,13 @@ const SettingsJellyfin: React.FC<SettingsJellyfinProps> = ({
}
try {
const url = new URL('/api/v1/settings/jellyfin/library');
url.search = new URLSearchParams({
const searchParams = new URLSearchParams({
sync: params.sync ? 'true' : 'false',
...(params.enable ? { enable: params.enable } : {}),
}).toString();
const res = await fetch(url);
});
const res = await fetch(
`/api/v1/settings/jellyfin/library?${searchParams.toString()}`
);
if (!res.ok) throw new Error();
setIsSyncing(false);
revalidate();
@@ -249,16 +250,18 @@ const SettingsJellyfin: React.FC<SettingsJellyfinProps> = ({
.join(',');
}
const url = new URL('/api/v1/settings/jellyfin/library');
url.search = new URLSearchParams(params.enable ? params : {}).toString();
const res = await fetch(url);
const searchParams = new URLSearchParams(params.enable ? params : {});
const res = await fetch(
`/api/v1/settings/jellyfin/library?${searchParams.toString}`
);
if (!res.ok) throw new Error();
} else {
const url = new URL('/api/v1/settings/jellyfin/library');
url.search = new URLSearchParams({
const searchParams = new URLSearchParams({
enable: [...activeLibraries, libraryId].join(','),
}).toString();
const res = await fetch(url);
});
const res = await fetch(
`/api/v1/settings/jellyfin/library?${searchParams.toString()}`
);
if (!res.ok) throw new Error();
}
if (onComplete) {

View File

@@ -240,12 +240,13 @@ const SettingsPlex = ({ onComplete }: SettingsPlexProps) => {
params.enable = activeLibraries.join(',');
}
const url = new URL('/api/v1/settings/plex/library');
url.search = new URLSearchParams({
const searchParams = new URLSearchParams({
sync: params.sync ? 'true' : 'false',
...(params.enable ? { enable: params.enable } : {}),
}).toString();
const res = await fetch(url);
});
const res = await fetch(
`/api/v1/settings/plex/library?${searchParams.toString()}`
);
if (!res.ok) throw new Error();
setIsSyncing(false);
@@ -332,16 +333,18 @@ const SettingsPlex = ({ onComplete }: SettingsPlexProps) => {
.join(',');
}
const url = new URL('/api/v1/settings/plex/library');
url.search = new URLSearchParams(params.enable ? params : {}).toString();
const res = await fetch(url);
const searchParams = new URLSearchParams(params.enable ? params : {});
const res = await fetch(
`/api/v1/settings/plex/library?${searchParams.toString()}`
);
if (!res.ok) throw new Error();
} else {
const url = new URL('/api/v1/settings/plex/library');
url.search = new URLSearchParams({
const searchParams = new URLSearchParams({
enable: [...activeLibraries, libraryId].join(','),
}).toString();
const res = await fetch(url);
});
const res = await fetch(
`/api/v1/settings/plex/library?${searchParams.toString()}`
);
if (!res.ok) throw new Error();
}
setIsSyncing(false);