1import { ApiClient } from './base.js'; 2 3const api = new ApiClient(); 4 5export const documentApi = { 6 getFolderContents: (projectId, folderId = 0, options = {}) => 7 api.get(`smrtbuild/projects/${projectId}/documents/folders/${folderId}`, options), 8 9 getFolderTree: (projectId, options = {}) => 10 api.get(`smrtbuild/projects/${projectId}/documents/folder-tree`, options), 11 12 /** 13 * Copy selected project documents onto a task's documents. 14 * POST /api/smrtbuild/projects/{projectId}/documents/copy-to-task 15 * @param {number} projectId 16 * @param {{taskId: number, fileIds: number[]}} data 17 * @returns {Promise<{success: boolean}>} 18 */ 19 copyToTask: (projectId, data) => 20 api.post(`smrtbuild/projects/${projectId}/documents/copy-to-task`, data), 21 22 /** 23 * Copy selected project documents onto a Submittal's documents. 24 * POST /api/smrtbuild/projects/{projectId}/documents/copy-to-submittal 25 * @param {number} projectId 26 * @param {{submittalId: number, fileIds: number[]}} data 27 * @returns {Promise<{success: boolean}>} 28 */ 29 copyToSubmittal: (projectId, data) => 30 api.post(`smrtbuild/projects/${projectId}/documents/copy-to-submittal`, data), 31 32 createFolder: (projectId, data, options = {}) => 33 api.post(`smrtbuild/projects/${projectId}/documents/folders`, data, options), 34 35 renameFolder: (projectId, folderId, data, options = {}) => 36 api.put(`smrtbuild/projects/${projectId}/documents/folders/${folderId}/rename`, data, options), 37 38 deleteFolder: (projectId, folderId, options = {}) => 39 api.delete(`smrtbuild/projects/${projectId}/documents/folders/${folderId}`, options), 40 41 uploadFile: (projectId, formData, options = {}) => 42 api.postFormData(`smrtbuild/projects/${projectId}/documents/files`, formData, options), 43 44 getDownloadUrl: (projectId, fileId, options = {}) => 45 api.get(`smrtbuild/projects/${projectId}/documents/files/${fileId}/download`, options), 46 47 renameFile: (projectId, fileId, data, options = {}) => 48 api.put(`smrtbuild/projects/${projectId}/documents/files/${fileId}/rename`, data, options), 49 50 deleteFile: (projectId, fileId, options = {}) => 51 api.delete(`smrtbuild/projects/${projectId}/documents/files/${fileId}`, options), 52 53 moveItem: (projectId, data, options = {}) => 54 api.post(`smrtbuild/projects/${projectId}/documents/move`, data, options), 55 56 shareFile: (projectId, fileId, data, options = {}) => 57 api.post(`smrtbuild/projects/${projectId}/documents/files/${fileId}/share`, data, options), 58 59 copyAttachmentToFolder: (projectId, attachmentId, folderId) => 60 api.post(`smrtbuild/projects/${projectId}/documents/copy-from-attachment`, { attachmentId, folderId }), 61};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.