@devvai/devv-code-backend
Version:
Backend SDK for Devv Code - Provides authentication, data management, email and AI capabilities
49 lines (48 loc) • 1.64 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileUpload = void 0;
const device_1 = require("./device");
const session_1 = require("./session");
const constants_1 = require("./constants");
class FileUpload {
async uploadFile(file) {
const endpoint = `${constants_1.BASE_URL}api/v1/upload-file`;
const deviceId = (0, device_1.getEncryptedDeviceId)();
const sid = (0, session_1.getSid)();
const formData = new FormData();
formData.append('file', file);
const headers = {
'Device-Id': deviceId,
};
if (sid) {
headers['sid'] = sid;
}
try {
const response = await fetch(endpoint, {
method: 'POST',
headers,
body: formData,
credentials: 'include',
});
const data = await response.json();
if (!response.ok) {
const errorData = data;
if (errorData && typeof errorData === 'object' && 'errCode' in errorData && 'errMsg' in errorData) {
throw new Error(errorData.errMsg);
}
throw new Error(`Upload failed with status ${response.status}`);
}
return data;
}
catch (error) {
if (error instanceof Error) {
throw error;
}
throw new Error('Failed to upload file');
}
}
isErrorResponse(response) {
return 'errCode' in response && 'errMsg' in response;
}
}
exports.FileUpload = FileUpload;
;