-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: tree shake unused API methods from CLI (#6973)
- Loading branch information
Showing
200 changed files
with
3,338 additions
and
22,417 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,106 @@ | ||
import { | ||
AlbumApi, | ||
APIKeyApi, | ||
AssetApi, | ||
AuthenticationApi, | ||
Configuration, | ||
JobApi, | ||
OAuthApi, | ||
ServerInfoApi, | ||
SystemConfigApi, | ||
UserApi, | ||
addAssetsToAlbum, | ||
checkBulkUpload, | ||
createAlbum, | ||
createApiKey, | ||
getAllAlbums, | ||
getAllAssets, | ||
getAssetStatistics, | ||
getMyUserInfo, | ||
getServerVersion, | ||
getSupportedMediaTypes, | ||
login, | ||
pingServer, | ||
signUpAdmin, | ||
uploadFile, | ||
ApiKeyCreateDto, | ||
AssetBulkUploadCheckDto, | ||
BulkIdsDto, | ||
CreateAlbumDto, | ||
CreateAssetDto, | ||
LoginCredentialDto, | ||
SignUpDto, | ||
} from '@immich/sdk'; | ||
|
||
/** | ||
* Wraps the underlying API to abstract away the options and make API calls mockable for testing. | ||
*/ | ||
export class ImmichApi { | ||
public userApi: UserApi; | ||
public albumApi: AlbumApi; | ||
public assetApi: AssetApi; | ||
public authenticationApi: AuthenticationApi; | ||
public oauthApi: OAuthApi; | ||
public serverInfoApi: ServerInfoApi; | ||
public jobApi: JobApi; | ||
public keyApi: APIKeyApi; | ||
public systemConfigApi: SystemConfigApi; | ||
|
||
private readonly config; | ||
private readonly options; | ||
|
||
constructor( | ||
public instanceUrl: string, | ||
public apiKey: string, | ||
) { | ||
this.config = new Configuration({ | ||
basePath: instanceUrl, | ||
this.options = { | ||
baseUrl: instanceUrl, | ||
headers: { | ||
'x-api-key': apiKey, | ||
}, | ||
}); | ||
|
||
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.serverInfoApi = new ServerInfoApi(this.config); | ||
this.jobApi = new JobApi(this.config); | ||
this.keyApi = new APIKeyApi(this.config); | ||
this.systemConfigApi = new SystemConfigApi(this.config); | ||
}; | ||
} | ||
|
||
setApiKey(apiKey: string) { | ||
this.apiKey = apiKey; | ||
if (!this.config.headers) { | ||
if (!this.options.headers) { | ||
throw new Error('missing headers'); | ||
} | ||
this.config.headers['x-api-key'] = apiKey; | ||
this.options.headers['x-api-key'] = apiKey; | ||
} | ||
|
||
async addAssetsToAlbum(id: string, bulkIdsDto: BulkIdsDto) { | ||
return await addAssetsToAlbum({ id, bulkIdsDto }, this.options); | ||
} | ||
|
||
async checkBulkUpload(assetBulkUploadCheckDto: AssetBulkUploadCheckDto) { | ||
return await checkBulkUpload({ assetBulkUploadCheckDto }, this.options); | ||
} | ||
|
||
async createAlbum(createAlbumDto: CreateAlbumDto) { | ||
return await createAlbum({ createAlbumDto }, this.options); | ||
} | ||
|
||
async createApiKey(apiKeyCreateDto: ApiKeyCreateDto, options: { headers: { Authorization: string } }) { | ||
return await createApiKey({ apiKeyCreateDto }, { ...this.options, ...options }); | ||
} | ||
|
||
async getAllAlbums() { | ||
return await getAllAlbums({}, this.options); | ||
} | ||
|
||
async getAllAssets() { | ||
return await getAllAssets({}, this.options); | ||
} | ||
|
||
async getAssetStatistics() { | ||
return await getAssetStatistics({}, this.options); | ||
} | ||
|
||
async getMyUserInfo() { | ||
return await getMyUserInfo(this.options); | ||
} | ||
|
||
async getServerVersion() { | ||
return await getServerVersion(this.options); | ||
} | ||
|
||
async getSupportedMediaTypes() { | ||
return await getSupportedMediaTypes(this.options); | ||
} | ||
|
||
async login(loginCredentialDto: LoginCredentialDto) { | ||
return await login({ loginCredentialDto }, this.options); | ||
} | ||
|
||
async pingServer() { | ||
return await pingServer(this.options); | ||
} | ||
|
||
async signUpAdmin(signUpDto: SignUpDto) { | ||
return await signUpAdmin({ signUpDto }, this.options); | ||
} | ||
|
||
async uploadFile(createAssetDto: CreateAssetDto) { | ||
return await uploadFile({ createAssetDto }, this.options); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.