1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-26 10:50:29 +02:00
immich/mobile/openapi/README.md
Jonathan Jogenfors 1b54c4f8e7
feat(server): Add support for client-side hashing (#2072)
* Modify controller DTOs

* Can check duplicates on server side

* Remove deviceassetid and deviceid

* Remove device ids from file uploader

* Add db migration for removed device ids

* Don't sanitize checksum

* Convert asset checksum to string

* Make checksum not optional for asset

* Use enums when rejecting duplicates

* Cleanup

* Return of the device id, but optional

* Don't use deviceId for upload folder

* Use checksum in thumb path

* Only use asset id in thumb path

* Openapi generation

* Put deviceAssetId back in asset response dto

* Add missing checksum in test fixture

* Add another missing checksum in test fixture

* Cleanup asset repository

* Add back previous /exists endpoint

* Require checksum to not be null

* Correctly set deviceId in db

* Remove index

* Fix compilation errors

* Make device id nullabel in asset response dto

* Reduce PR scope

* Revert asset service

* Reorder imports

* Reorder imports

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Reduce PR scope

* Update openapi

* Reduce PR scope

* refactor: asset bulk upload check

* chore: regenreate open-api

* chore: fix tests

* chore: tests

* update migrations and regenerate api

* Feat: use checksum in web file uploader

* Change to wasm-crypto

* Use crypto api for checksumming in web uploader

* Minor cleanup of file upload

* feat(web): pause and resume jobs

* Make device asset id not nullable again

* Cleanup

* Device id not nullable in response dto

* Update API specs

* Bump api specs

* Remove old TODO comment

* Remove NOT NULL constraint on checksum index

* Fix requested pubspec changes

* Remove unneeded import

* Update server/apps/immich/src/api-v1/asset/asset.service.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Remove unneeded check

* Update server/apps/immich/src/api-v1/asset/asset-repository.ts

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Remove hashing in the web uploader

* Cleanup file uploader

* Remove varchar from asset entity fields

* Return 200 from bulk upload check

* Put device asset id back into asset repository

* Merge migrations

* Revert pubspec lock

* Update openapi specs

* Merge upstream changes

* Fix failing asset service tests

* Fix formatting issue

* Cleanup migrations

* Remove newline from pubspec

* Revert newline

* Checkout main version

* Revert again

* Only return AssetCheck

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2023-05-24 16:08:21 -05:00

17 KiB
Generated

openapi

Immich API

This Dart package is automatically generated by the OpenAPI Generator project:

  • API version: 1.57.1
  • Build package: org.openapitools.codegen.languages.DartClientCodegen

Requirements

Dart 2.12 or later

Installation & Usage

Github

If this Dart package is published to Github, add the following dependency to your pubspec.yaml

dependencies:
  openapi:
    git: https://github.com/GIT_USER_ID/GIT_REPO_ID.git

Local

To use the package in your local drive, add the following dependency to your pubspec.yaml

dependencies:
  openapi:
    path: /path/to/openapi

Tests

TODO

Getting Started

Please follow the installation procedure and then run the following:

import 'package:openapi/api.dart';

// TODO Configure API key authorization: cookie
//defaultApiClient.getAuthentication<ApiKeyAuth>('cookie').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('cookie').apiKeyPrefix = 'Bearer';
// TODO Configure API key authorization: api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('api_key').apiKeyPrefix = 'Bearer';
// TODO Configure HTTP Bearer authorization: bearer
// Case 1. Use String Token
//defaultApiClient.getAuthentication<HttpBearerAuth>('bearer').setAccessToken('YOUR_ACCESS_TOKEN');
// Case 2. Use Function which generate token.
// String yourTokenGeneratorFunction() { ... }
//defaultApiClient.getAuthentication<HttpBearerAuth>('bearer').setAccessToken(yourTokenGeneratorFunction);

final api_instance = APIKeyApi();
final aPIKeyCreateDto = APIKeyCreateDto(); // APIKeyCreateDto | 

try {
    final result = api_instance.createKey(aPIKeyCreateDto);
    print(result);
} catch (e) {
    print('Exception when calling APIKeyApi->createKey: $e\n');
}

Documentation for API Endpoints

All URIs are relative to /api

Class Method HTTP request Description
APIKeyApi createKey POST /api-key
APIKeyApi deleteKey DELETE /api-key/{id}
APIKeyApi getKey GET /api-key/{id}
APIKeyApi getKeys GET /api-key
APIKeyApi updateKey PUT /api-key/{id}
AlbumApi addAssetsToAlbum PUT /album/{id}/assets
AlbumApi addUsersToAlbum PUT /album/{id}/users
AlbumApi createAlbum POST /album
AlbumApi createAlbumSharedLink POST /album/create-shared-link
AlbumApi deleteAlbum DELETE /album/{id}
AlbumApi downloadArchive GET /album/{id}/download
AlbumApi getAlbumCountByUserId GET /album/count-by-user-id
AlbumApi getAlbumInfo GET /album/{id}
AlbumApi getAllAlbums GET /album
AlbumApi removeAssetFromAlbum DELETE /album/{id}/assets
AlbumApi removeUserFromAlbum DELETE /album/{id}/user/{userId}
AlbumApi updateAlbumInfo PATCH /album/{id}
AssetApi addAssetsToSharedLink PATCH /asset/shared-link/add
AssetApi bulkUploadCheck POST /asset/bulk-upload-check
AssetApi checkDuplicateAsset POST /asset/check
AssetApi checkExistingAssets POST /asset/exist
AssetApi createAssetsSharedLink POST /asset/shared-link
AssetApi deleteAsset DELETE /asset
AssetApi downloadFile GET /asset/download/{assetId}
AssetApi downloadFiles POST /asset/download-files
AssetApi downloadLibrary GET /asset/download-library
AssetApi getAllAssets GET /asset
AssetApi getArchivedAssetCountByUserId GET /asset/stat/archive
AssetApi getAssetById GET /asset/assetById/{assetId}
AssetApi getAssetByTimeBucket POST /asset/time-bucket
AssetApi getAssetCountByTimeBucket POST /asset/count-by-time-bucket
AssetApi getAssetCountByUserId GET /asset/count-by-user-id
AssetApi getAssetSearchTerms GET /asset/search-terms
AssetApi getAssetThumbnail GET /asset/thumbnail/{assetId}
AssetApi getCuratedLocations GET /asset/curated-locations
AssetApi getCuratedObjects GET /asset/curated-objects
AssetApi getMapMarkers GET /asset/map-marker
AssetApi getUserAssetsByDeviceId GET /asset/{deviceId}
AssetApi removeAssetsFromSharedLink PATCH /asset/shared-link/remove
AssetApi searchAsset POST /asset/search
AssetApi serveFile GET /asset/file/{assetId}
AssetApi updateAsset PUT /asset/{assetId}
AssetApi uploadFile POST /asset/upload
AuthenticationApi adminSignUp POST /auth/admin-sign-up
AuthenticationApi changePassword POST /auth/change-password
AuthenticationApi getAuthDevices GET /auth/devices
AuthenticationApi login POST /auth/login
AuthenticationApi logout POST /auth/logout
AuthenticationApi logoutAuthDevice DELETE /auth/devices/{id}
AuthenticationApi logoutAuthDevices DELETE /auth/devices
AuthenticationApi validateAccessToken POST /auth/validateToken
JobApi getAllJobsStatus GET /jobs
JobApi sendJobCommand PUT /jobs/{jobId}
OAuthApi callback POST /oauth/callback
OAuthApi generateConfig POST /oauth/config
OAuthApi link POST /oauth/link
OAuthApi mobileRedirect GET /oauth/mobile-redirect
OAuthApi unlink POST /oauth/unlink
PartnerApi createPartner POST /partner/{id}
PartnerApi getPartners GET /partner
PartnerApi removePartner DELETE /partner/{id}
PersonApi getAllPeople GET /person
PersonApi getPerson GET /person/{id}
PersonApi getPersonAssets GET /person/{id}/assets
PersonApi getPersonThumbnail GET /person/{id}/thumbnail
PersonApi updatePerson PUT /person/{id}
SearchApi getExploreData GET /search/explore
SearchApi getSearchConfig GET /search/config
SearchApi search GET /search
ServerInfoApi getServerInfo GET /server-info
ServerInfoApi getServerVersion GET /server-info/version
ServerInfoApi getStats GET /server-info/stats
ServerInfoApi pingServer GET /server-info/ping
ShareApi editSharedLink PATCH /share/{id}
ShareApi getAllSharedLinks GET /share
ShareApi getMySharedLink GET /share/me
ShareApi getSharedLinkById GET /share/{id}
ShareApi removeSharedLink DELETE /share/{id}
SystemConfigApi getConfig GET /system-config
SystemConfigApi getDefaults GET /system-config/defaults
SystemConfigApi getStorageTemplateOptions GET /system-config/storage-template-options
SystemConfigApi updateConfig PUT /system-config
TagApi create POST /tag
TagApi delete DELETE /tag/{id}
TagApi findAll GET /tag
TagApi findOne GET /tag/{id}
TagApi update PATCH /tag/{id}
UserApi createProfileImage POST /user/profile-image
UserApi createUser POST /user
UserApi deleteUser DELETE /user/{userId}
UserApi getAllUsers GET /user
UserApi getMyUserInfo GET /user/me
UserApi getProfileImage GET /user/profile-image/{userId}
UserApi getUserById GET /user/info/{userId}
UserApi getUserCount GET /user/count
UserApi restoreUser POST /user/{userId}/restore
UserApi updateUser PUT /user

Documentation For Models

Documentation For Authorization

bearer

  • Type: HTTP Bearer authentication
  • Type: API key
  • API key parameter name: immich_access_token
  • Location:

api_key

  • Type: API key
  • API key parameter name: x-api-key
  • Location: HTTP header

Author