PageSourceSearch

https://smrtbld.ai/js/api/project-documents.js

js smrtbld.ai collected 2026-10-05 15:09:05 UTC 2,772 bytes, 61 lines download raw bytes

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.