refactor(web): use new open api client (#7097)

* refactor(web): use new open api client

* refactor: remove activity api

* refactor: trash, oauth, and partner apis

* refactor: job api

* refactor: face, library, system config

* refactor: user api

* refactor: album api
This commit is contained in:
Jason Rasmussen 2024-02-13 17:07:37 -05:00 committed by GitHub
parent 9b4a770b9d
commit 8fd94211c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
66 changed files with 593 additions and 850 deletions

View file

@ -1,15 +1,16 @@
<script lang="ts">
import { type PartnerResponseDto, type UserResponseDto, api } from '@api';
import UserAvatar from '../shared-components/user-avatar.svelte';
import Button from '../elements/buttons/button.svelte';
import PartnerSelectionModal from './partner-selection-modal.svelte';
import { handleError } from '../../utils/handle-error';
import ConfirmDialogue from '../shared-components/confirm-dialogue.svelte';
import CircleIconButton from '../elements/buttons/circle-icon-button.svelte';
import { type PartnerResponseDto, type UserResponseDto } from '@api';
import { createPartner, getPartners, removePartner, updatePartner } from '@immich/sdk';
import { mdiCheck, mdiClose } from '@mdi/js';
import { onMount } from 'svelte';
import Icon from '../elements/icon.svelte';
import { handleError } from '../../utils/handle-error';
import SettingSwitch from '../admin-page/settings/setting-switch.svelte';
import Button from '../elements/buttons/button.svelte';
import CircleIconButton from '../elements/buttons/circle-icon-button.svelte';
import Icon from '../elements/icon.svelte';
import ConfirmDialogue from '../shared-components/confirm-dialogue.svelte';
import UserAvatar from '../shared-components/user-avatar.svelte';
import PartnerSelectionModal from './partner-selection-modal.svelte';
interface PartnerSharing {
user: UserResponseDto;
@ -20,8 +21,8 @@
export let user: UserResponseDto;
let createPartner = false;
let removePartner: PartnerResponseDto | null = null;
let createPartnerFlag = false;
let removePartnerDto: PartnerResponseDto | null = null;
let partners: Array<PartnerSharing> = [];
onMount(() => {
@ -31,9 +32,9 @@
const refreshPartners = async () => {
partners = [];
const [{ data: sharedBy }, { data: sharedWith }] = await Promise.all([
api.partnerApi.getPartners({ direction: 'shared-by' }),
api.partnerApi.getPartners({ direction: 'shared-with' }),
const [sharedBy, sharedWith] = await Promise.all([
getPartners({ direction: 'shared-by' }),
getPartners({ direction: 'shared-with' }),
]);
for (const candidate of sharedBy) {
@ -69,13 +70,13 @@
};
const handleRemovePartner = async () => {
if (!removePartner) {
if (!removePartnerDto) {
return;
}
try {
await api.partnerApi.removePartner({ id: removePartner.id });
removePartner = null;
await removePartner({ id: removePartnerDto.id });
removePartnerDto = null;
await refreshPartners();
} catch (error) {
handleError(error, 'Unable to remove partner');
@ -85,11 +86,11 @@
const handleCreatePartners = async (users: UserResponseDto[]) => {
try {
for (const user of users) {
await api.partnerApi.createPartner({ id: user.id });
await createPartner({ id: user.id });
}
await refreshPartners();
createPartner = false;
createPartnerFlag = false;
} catch (error) {
handleError(error, 'Unable to add partners');
}
@ -97,7 +98,7 @@
const handleShowOnTimelineChanged = async (partner: PartnerSharing, inTimeline: boolean) => {
try {
await api.partnerApi.updatePartner({ id: partner.user.id, updatePartnerDto: { inTimeline } });
await updatePartner({ id: partner.user.id, updatePartnerDto: { inTimeline } });
partner.inTimeline = inTimeline;
partners = partners;
@ -126,7 +127,7 @@
{#if partner.sharedByMe}
<CircleIconButton
on:click={() => (removePartner = partner.user)}
on:click={() => (removePartnerDto = partner.user)}
icon={mdiClose}
size={'16'}
title="Stop sharing your photos with this user"
@ -167,23 +168,23 @@
{/if}
<div class="flex justify-end mt-5">
<Button size="sm" on:click={() => (createPartner = true)}>Add partner</Button>
<Button size="sm" on:click={() => (createPartnerFlag = true)}>Add partner</Button>
</div>
</section>
{#if createPartner}
{#if createPartnerFlag}
<PartnerSelectionModal
{user}
on:close={() => (createPartner = false)}
on:close={() => (createPartnerFlag = false)}
on:add-users={(event) => handleCreatePartners(event.detail)}
/>
{/if}
{#if removePartner}
{#if removePartnerDto}
<ConfirmDialogue
title="Stop sharing your photos?"
prompt="{removePartner.name} will no longer be able to access your photos."
on:cancel={() => (removePartner = null)}
prompt="{removePartnerDto.name} will no longer be able to access your photos."
on:cancel={() => (removePartnerDto = null)}
on:confirm={() => handleRemovePartner()}
/>
{/if}