🖥️ Onlyoffice connector moved into the TwakeDrive repository (#366)

This commit is contained in:
Montassar Ghanmy
2024-02-27 10:35:01 +01:00
committed by GitHub
parent ff74104a1b
commit dcb6fa1c36
40 changed files with 1557 additions and 3 deletions
@@ -0,0 +1,49 @@
import { DriveFileType, IDriveService } from '@/interfaces/drive.interface';
import apiService from './api.service';
import loggerService from './logger.service';
class DriveService implements IDriveService {
public get = async (params: { company_id: string; drive_file_id: string; user_token?: string }): Promise<DriveFileType> => {
try {
const { company_id, drive_file_id } = params;
const resource = await apiService.get<DriveFileType>({
url: `/internal/services/documents/v1/companies/${company_id}/item/${drive_file_id}`,
token: params.user_token,
});
return resource;
} catch (error) {
loggerService.error('Failed to fetch file metadata: ', error.message);
return Promise.reject();
}
};
public createVersion = async (params: {
company_id: string;
drive_file_id: string;
file_id: string;
}): Promise<DriveFileType['item']['last_version_cache']> => {
try {
const { company_id, drive_file_id, file_id } = params;
const resource = await apiService.post<{}, DriveFileType['item']['last_version_cache']>({
url: `/internal/services/documents/v1/companies/${company_id}/item/${drive_file_id}/version`,
payload: {
drive_item_id: drive_file_id,
provider: 'internal',
file_metadata: {
external_id: file_id,
source: 'internal',
},
},
});
return resource;
} catch (error) {
loggerService.error('Failed to create version: ', error.message);
return Promise.reject();
}
};
}
export default new DriveService();