mirror of
https://github.com/immich-app/immich.git
synced 2026-02-09 03:08:53 +03:00
* Add new cli * Remove old readme * Add documentation to readme file * Add github workflow tests for cli * Fix typo in docs * Add usage info to readme * Add package-lock.json * Fix tsconfig * Cleanup * Fix lint * Cleanup package.json * Fix accidental server change * Remove rootdir from cli * Remove tsbuildinfo * Add prettierignore * Make CLI use internal openapi specs * Add ignore and dry-run features * Sort paths alphabetically * Don't remove substring * Remove shorthand for delete * Remove unused import * Remove chokidar * Set correct openapi cli generator script * Add progress bar * Rename target to asset * Add deletion progress bar * Ignore require statement * Use read streams instead of readfile * Fix github feedback * Fix upload requires * More github comments * Cleanup messages * Cleaner pattern concats * Github comments --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { ImmichApi } from '../api/client';
|
|
import path from 'node:path';
|
|
import { SessionService } from '../services/session.service';
|
|
import { LoginError } from '../cores/errors/login-error';
|
|
import { exit } from 'node:process';
|
|
import os from 'os';
|
|
import { ServerVersionReponseDto, UserResponseDto } from 'src/api/open-api';
|
|
|
|
export abstract class BaseCommand {
|
|
protected sessionService!: SessionService;
|
|
protected immichApi!: ImmichApi;
|
|
protected deviceId!: string;
|
|
protected user!: UserResponseDto;
|
|
protected serverVersion!: ServerVersionReponseDto;
|
|
|
|
protected configDir;
|
|
protected authPath;
|
|
|
|
constructor() {
|
|
const userHomeDir = os.homedir();
|
|
this.configDir = path.join(userHomeDir, '.config/immich/');
|
|
this.sessionService = new SessionService(this.configDir);
|
|
this.authPath = path.join(this.configDir, 'auth.yml');
|
|
}
|
|
|
|
public async connect(): Promise<void> {
|
|
try {
|
|
this.immichApi = await this.sessionService.connect();
|
|
} catch (error) {
|
|
if (error instanceof LoginError) {
|
|
console.log(error.message);
|
|
exit(1);
|
|
} else {
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
}
|