You've already forked immich
mirror of
https://github.com/immich-app/immich.git
synced 2025-06-17 03:47:45 +02:00
feat(server): user preferences (#9736)
* refactor(server): user endpoints * feat(server): user preferences * mobile: user preference * wording --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
@ -45,7 +45,6 @@ export type UserAdminResponseDto = {
|
||||
email: string;
|
||||
id: string;
|
||||
isAdmin: boolean;
|
||||
memoriesEnabled?: boolean;
|
||||
name: string;
|
||||
oauthId: string;
|
||||
profileImagePath: string;
|
||||
@ -58,7 +57,6 @@ export type UserAdminResponseDto = {
|
||||
};
|
||||
export type UserAdminCreateDto = {
|
||||
email: string;
|
||||
memoriesEnabled?: boolean;
|
||||
name: string;
|
||||
notify?: boolean;
|
||||
password: string;
|
||||
@ -70,15 +68,33 @@ export type UserAdminDeleteDto = {
|
||||
force?: boolean;
|
||||
};
|
||||
export type UserAdminUpdateDto = {
|
||||
avatarColor?: UserAvatarColor;
|
||||
email?: string;
|
||||
memoriesEnabled?: boolean;
|
||||
name?: string;
|
||||
password?: string;
|
||||
quotaSizeInBytes?: number | null;
|
||||
shouldChangePassword?: boolean;
|
||||
storageLabel?: string | null;
|
||||
};
|
||||
export type AvatarResponse = {
|
||||
color: UserAvatarColor;
|
||||
};
|
||||
export type MemoryResponse = {
|
||||
enabled: boolean;
|
||||
};
|
||||
export type UserPreferencesResponseDto = {
|
||||
avatar: AvatarResponse;
|
||||
memories: MemoryResponse;
|
||||
};
|
||||
export type AvatarUpdate = {
|
||||
color?: UserAvatarColor;
|
||||
};
|
||||
export type MemoryUpdate = {
|
||||
enabled?: boolean;
|
||||
};
|
||||
export type UserPreferencesUpdateDto = {
|
||||
avatar?: AvatarUpdate;
|
||||
memories?: MemoryUpdate;
|
||||
};
|
||||
export type AlbumUserResponseDto = {
|
||||
role: AlbumUserRole;
|
||||
user: UserResponseDto;
|
||||
@ -1073,9 +1089,7 @@ export type TimeBucketResponseDto = {
|
||||
timeBucket: string;
|
||||
};
|
||||
export type UserUpdateMeDto = {
|
||||
avatarColor?: UserAvatarColor;
|
||||
email?: string;
|
||||
memoriesEnabled?: boolean;
|
||||
name?: string;
|
||||
password?: string;
|
||||
};
|
||||
@ -1200,6 +1214,29 @@ export function updateUserAdmin({ id, userAdminUpdateDto }: {
|
||||
body: userAdminUpdateDto
|
||||
})));
|
||||
}
|
||||
export function getUserPreferencesAdmin({ id }: {
|
||||
id: string;
|
||||
}, opts?: Oazapfts.RequestOpts) {
|
||||
return oazapfts.ok(oazapfts.fetchJson<{
|
||||
status: 200;
|
||||
data: UserPreferencesResponseDto;
|
||||
}>(`/admin/users/${encodeURIComponent(id)}/preferences`, {
|
||||
...opts
|
||||
}));
|
||||
}
|
||||
export function updateUserPreferencesAdmin({ id, userPreferencesUpdateDto }: {
|
||||
id: string;
|
||||
userPreferencesUpdateDto: UserPreferencesUpdateDto;
|
||||
}, opts?: Oazapfts.RequestOpts) {
|
||||
return oazapfts.ok(oazapfts.fetchJson<{
|
||||
status: 200;
|
||||
data: UserPreferencesResponseDto;
|
||||
}>(`/admin/users/${encodeURIComponent(id)}/preferences`, oazapfts.json({
|
||||
...opts,
|
||||
method: "PUT",
|
||||
body: userPreferencesUpdateDto
|
||||
})));
|
||||
}
|
||||
export function restoreUserAdmin({ id }: {
|
||||
id: string;
|
||||
}, opts?: Oazapfts.RequestOpts) {
|
||||
@ -2780,6 +2817,26 @@ export function updateMyUser({ userUpdateMeDto }: {
|
||||
body: userUpdateMeDto
|
||||
})));
|
||||
}
|
||||
export function getMyPreferences(opts?: Oazapfts.RequestOpts) {
|
||||
return oazapfts.ok(oazapfts.fetchJson<{
|
||||
status: 200;
|
||||
data: UserPreferencesResponseDto;
|
||||
}>("/users/me/preferences", {
|
||||
...opts
|
||||
}));
|
||||
}
|
||||
export function updateMyPreferences({ userPreferencesUpdateDto }: {
|
||||
userPreferencesUpdateDto: UserPreferencesUpdateDto;
|
||||
}, opts?: Oazapfts.RequestOpts) {
|
||||
return oazapfts.ok(oazapfts.fetchJson<{
|
||||
status: 200;
|
||||
data: UserPreferencesResponseDto;
|
||||
}>("/users/me/preferences", oazapfts.json({
|
||||
...opts,
|
||||
method: "PUT",
|
||||
body: userPreferencesUpdateDto
|
||||
})));
|
||||
}
|
||||
export function deleteProfileImage(opts?: Oazapfts.RequestOpts) {
|
||||
return oazapfts.ok(oazapfts.fetchText("/users/profile-image", {
|
||||
...opts,
|
||||
|
Reference in New Issue
Block a user