refactor(server): move timeline operations to their own controller/service (#8325)

* move timeline operations to their own controller/service

* chore: open api

* move e2e tests
This commit is contained in:
Daniel Dietzler 2024-03-29 04:20:40 +01:00 committed by GitHub
parent b8b3c487d4
commit b8c5363a15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 1285 additions and 1115 deletions

View file

@ -284,10 +284,6 @@ export type AssetStatsResponseDto = {
total: number;
videos: number;
};
export type TimeBucketResponseDto = {
count: number;
timeBucket: string;
};
export type CreateAssetDto = {
assetData: Blob;
deviceAssetId: string;
@ -971,6 +967,10 @@ export type CreateTagDto = {
export type UpdateTagDto = {
name?: string;
};
export type TimeBucketResponseDto = {
count: number;
timeBucket: string;
};
export type CreateUserDto = {
email: string;
memoriesEnabled?: boolean;
@ -1456,72 +1456,6 @@ export function getAssetThumbnail({ format, id, key }: {
...opts
}));
}
export function getTimeBucket({ albumId, isArchived, isFavorite, isTrashed, key, order, personId, size, timeBucket, userId, withPartners, withStacked }: {
albumId?: string;
isArchived?: boolean;
isFavorite?: boolean;
isTrashed?: boolean;
key?: string;
order?: AssetOrder;
personId?: string;
size: TimeBucketSize;
timeBucket: string;
userId?: string;
withPartners?: boolean;
withStacked?: boolean;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: AssetResponseDto[];
}>(`/asset/time-bucket${QS.query(QS.explode({
albumId,
isArchived,
isFavorite,
isTrashed,
key,
order,
personId,
size,
timeBucket,
userId,
withPartners,
withStacked
}))}`, {
...opts
}));
}
export function getTimeBuckets({ albumId, isArchived, isFavorite, isTrashed, key, order, personId, size, userId, withPartners, withStacked }: {
albumId?: string;
isArchived?: boolean;
isFavorite?: boolean;
isTrashed?: boolean;
key?: string;
order?: AssetOrder;
personId?: string;
size: TimeBucketSize;
userId?: string;
withPartners?: boolean;
withStacked?: boolean;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: TimeBucketResponseDto[];
}>(`/asset/time-buckets${QS.query(QS.explode({
albumId,
isArchived,
isFavorite,
isTrashed,
key,
order,
personId,
size,
userId,
withPartners,
withStacked
}))}`, {
...opts
}));
}
export function uploadFile({ key, createAssetDto }: {
key?: string;
createAssetDto: CreateAssetDto;
@ -2595,6 +2529,72 @@ export function tagAssets({ id, assetIdsDto }: {
body: assetIdsDto
})));
}
export function getTimeBucket({ albumId, isArchived, isFavorite, isTrashed, key, order, personId, size, timeBucket, userId, withPartners, withStacked }: {
albumId?: string;
isArchived?: boolean;
isFavorite?: boolean;
isTrashed?: boolean;
key?: string;
order?: AssetOrder;
personId?: string;
size: TimeBucketSize;
timeBucket: string;
userId?: string;
withPartners?: boolean;
withStacked?: boolean;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: AssetResponseDto[];
}>(`/timeline/bucket${QS.query(QS.explode({
albumId,
isArchived,
isFavorite,
isTrashed,
key,
order,
personId,
size,
timeBucket,
userId,
withPartners,
withStacked
}))}`, {
...opts
}));
}
export function getTimeBuckets({ albumId, isArchived, isFavorite, isTrashed, key, order, personId, size, userId, withPartners, withStacked }: {
albumId?: string;
isArchived?: boolean;
isFavorite?: boolean;
isTrashed?: boolean;
key?: string;
order?: AssetOrder;
personId?: string;
size: TimeBucketSize;
userId?: string;
withPartners?: boolean;
withStacked?: boolean;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: TimeBucketResponseDto[];
}>(`/timeline/buckets${QS.query(QS.explode({
albumId,
isArchived,
isFavorite,
isTrashed,
key,
order,
personId,
size,
userId,
withPartners,
withStacked
}))}`, {
...opts
}));
}
export function emptyTrash(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText("/trash/empty", {
...opts,
@ -2789,10 +2789,6 @@ export enum ThumbnailFormat {
Jpeg = "JPEG",
Webp = "WEBP"
}
export enum TimeBucketSize {
Day = "DAY",
Month = "MONTH"
}
export enum EntityType {
Asset = "ASSET",
Album = "ALBUM"
@ -2911,3 +2907,7 @@ export enum MapTheme {
Light = "light",
Dark = "dark"
}
export enum TimeBucketSize {
Day = "DAY",
Month = "MONTH"
}