mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
Refactor web to use OpenAPI SDK (#326)
* Refactor main index page * Refactor admin page * Refactor Auth endpoint * Refactor directory to prep for monorepo * Fixed refactoring path * Resolved file path in vite * Refactor photo index page * Refactor thumbnail * Fixed test * Refactor Video Viewer component * Refactor download file * Refactor navigation bar * Refactor upload file check * Simplify Upload Asset signature * PR feedback
This commit is contained in:
parent
7f236c5b18
commit
9a6dfacf9b
55 changed files with 516 additions and 691 deletions
59
web/src/lib/utils/api-helper.ts
Normal file
59
web/src/lib/utils/api-helper.ts
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
import { serverEndpoint } from '../constants';
|
||||
|
||||
type ISend = {
|
||||
method: string;
|
||||
path: string;
|
||||
data?: any;
|
||||
token: string;
|
||||
customHeaders?: Record<string, string>;
|
||||
};
|
||||
|
||||
type IOption = {
|
||||
method: string;
|
||||
headers: Record<string, string>;
|
||||
body: any;
|
||||
};
|
||||
|
||||
async function send({ method, path, data, token, customHeaders }: ISend) {
|
||||
const opts: IOption = { method, headers: {} } as IOption;
|
||||
|
||||
if (data) {
|
||||
opts.headers['Content-Type'] = 'application/json';
|
||||
opts.body = JSON.stringify(data);
|
||||
}
|
||||
|
||||
if (customHeaders) {
|
||||
console.log(customHeaders);
|
||||
// opts.headers[customHeader.$1]
|
||||
}
|
||||
|
||||
if (token) {
|
||||
opts.headers['Authorization'] = `Bearer ${token}`;
|
||||
}
|
||||
|
||||
return fetch(`${serverEndpoint}/${path}`, opts)
|
||||
.then((r) => r.text())
|
||||
.then((json) => {
|
||||
try {
|
||||
return JSON.parse(json);
|
||||
} catch (err) {
|
||||
return json;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function getRequest(path: string, token: string, customHeaders?: Record<string, string>) {
|
||||
return send({ method: 'GET', path, token, customHeaders });
|
||||
}
|
||||
|
||||
export function delRequest(path: string, token: string, customHeaders?: Record<string, string>) {
|
||||
return send({ method: 'DELETE', path, token, customHeaders });
|
||||
}
|
||||
|
||||
export function postRequest(path: string, data: any, token: string, customHeaders?: Record<string, string>) {
|
||||
return send({ method: 'POST', path, data, token, customHeaders });
|
||||
}
|
||||
|
||||
export function putRequest(path: string, data: any, token: string, customHeaders?: Record<string, string>) {
|
||||
return send({ method: 'PUT', path, data, token, customHeaders });
|
||||
}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
/* @vite-ignore */
|
||||
import * as exifr from 'exifr';
|
||||
import { serverEndpoint } from '../constants';
|
||||
import { uploadAssetsStore } from '$lib/stores/upload';
|
||||
import type { UploadAsset } from '../models/upload-asset';
|
||||
import { api } from '@api';
|
||||
|
||||
export async function fileUploader(asset: File, accessToken: string) {
|
||||
const assetType = asset.type.split('/')[0].toUpperCase();
|
||||
|
|
@ -51,19 +53,14 @@ export async function fileUploader(asset: File, accessToken: string) {
|
|||
formData.append('assetData', asset);
|
||||
|
||||
// Check if asset upload on server before performing upload
|
||||
const res = await fetch(serverEndpoint + '/asset/check', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ deviceAssetId, deviceId: 'WEB' }),
|
||||
headers: {
|
||||
Authorization: 'Bearer ' + accessToken,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
|
||||
const { data, status } = await api.assetApi.checkDuplicateAsset({
|
||||
deviceAssetId: String(deviceAssetId),
|
||||
deviceId: 'WEB',
|
||||
});
|
||||
|
||||
if (res.status === 200) {
|
||||
const { isExist } = await res.json();
|
||||
|
||||
if (isExist) {
|
||||
if (status === 200) {
|
||||
if (data.isExist) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue