mirror of
https://github.com/samsonjs/immich.git
synced 2026-03-31 10:15:54 +00:00
* feat(.well-known): add .well-known/immich to reference API endpoint * feat(.well-known): make schema optional (defaults to https) * adjust method comment to be a little less confusing * fix casting issue with resovled url * include when checking Well-known, update server hint * add validation for login form's server url * consolidate common process into resolveAndSetEndpoint * fix missed prettier formatting * revert translation changes * update environment variable description, hopefully a bit clearer * rename environment variable to IMMICH_API_URL_EXTERNAL * comment out optional env variables * fix(web): browser-side api client to include authorization token * Revert "fix(web): browser-side api client to include authorization token" This reverts commit 60e338938f25792adb233d35bcecbd789bdb3240. * remove multi-domain related changes
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import { env } from '$env/dynamic/public';
|
|
import {
|
|
AlbumApi,
|
|
APIKeyApi,
|
|
AssetApi,
|
|
AuthenticationApi,
|
|
Configuration,
|
|
DeviceInfoApi,
|
|
JobApi,
|
|
OAuthApi,
|
|
ServerInfoApi,
|
|
ShareApi,
|
|
SystemConfigApi,
|
|
UserApi
|
|
} from './open-api';
|
|
|
|
class ImmichApi {
|
|
public userApi: UserApi;
|
|
public albumApi: AlbumApi;
|
|
public assetApi: AssetApi;
|
|
public authenticationApi: AuthenticationApi;
|
|
public oauthApi: OAuthApi;
|
|
public deviceInfoApi: DeviceInfoApi;
|
|
public serverInfoApi: ServerInfoApi;
|
|
public jobApi: JobApi;
|
|
public keyApi: APIKeyApi;
|
|
public systemConfigApi: SystemConfigApi;
|
|
public shareApi: ShareApi;
|
|
|
|
private config = new Configuration({ basePath: '/api' });
|
|
|
|
constructor() {
|
|
this.userApi = new UserApi(this.config);
|
|
this.albumApi = new AlbumApi(this.config);
|
|
this.assetApi = new AssetApi(this.config);
|
|
this.authenticationApi = new AuthenticationApi(this.config);
|
|
this.oauthApi = new OAuthApi(this.config);
|
|
this.deviceInfoApi = new DeviceInfoApi(this.config);
|
|
this.serverInfoApi = new ServerInfoApi(this.config);
|
|
this.jobApi = new JobApi(this.config);
|
|
this.keyApi = new APIKeyApi(this.config);
|
|
this.systemConfigApi = new SystemConfigApi(this.config);
|
|
this.shareApi = new ShareApi(this.config);
|
|
}
|
|
|
|
public setAccessToken(accessToken: string) {
|
|
this.config.accessToken = accessToken;
|
|
}
|
|
|
|
public removeAccessToken() {
|
|
this.config.accessToken = undefined;
|
|
}
|
|
|
|
public setBaseUrl(baseUrl: string) {
|
|
this.config.basePath = baseUrl;
|
|
}
|
|
}
|
|
|
|
// Browser side (public) API client
|
|
export const api = new ImmichApi();
|
|
|
|
// Server side API client
|
|
export const serverApi = new ImmichApi();
|
|
const immich_server_url = env.PUBLIC_IMMICH_SERVER_URL || 'http://immich-server:3001';
|
|
serverApi.setBaseUrl(immich_server_url);
|