avvir 7.1.5 → 7.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avvir_api.node.js +818 -593
- package/dist/esm/api/comment_api.d.ts +2 -2
- package/dist/esm/api/comment_api.js.map +1 -1
- package/dist/esm/api/element_api.d.ts +3 -3
- package/dist/esm/api/element_api.js.map +1 -1
- package/dist/esm/api/file_information_api.d.ts +3 -2
- package/dist/esm/api/file_information_api.js +4 -5
- package/dist/esm/api/file_information_api.js.map +1 -1
- package/dist/esm/api/floor_api.d.ts +3 -5
- package/dist/esm/api/floor_api.js +2 -1
- package/dist/esm/api/floor_api.js.map +1 -1
- package/dist/esm/api/group_api.d.ts +3 -3
- package/dist/esm/api/group_api.js.map +1 -1
- package/dist/esm/api/integrations_api.d.ts +8 -2
- package/dist/esm/api/integrations_api.js +21 -0
- package/dist/esm/api/integrations_api.js.map +1 -1
- package/dist/esm/api/photo_area_api.d.ts +2 -2
- package/dist/esm/api/photo_area_api.js +1 -1
- package/dist/esm/api/photo_area_api.js.map +1 -1
- package/dist/esm/api/pipeline_api.d.ts +2 -3
- package/dist/esm/api/pipeline_api.js.map +1 -1
- package/dist/esm/api/project_api.d.ts +3 -4
- package/dist/esm/api/project_api.js +6 -3
- package/dist/esm/api/project_api.js.map +1 -1
- package/dist/esm/api/recipe_api.d.ts +2 -3
- package/dist/esm/api/recipe_api.js.map +1 -1
- package/dist/esm/api/report_api.d.ts +2 -3
- package/dist/esm/api/report_api.js +1 -1
- package/dist/esm/api/report_api.js.map +1 -1
- package/dist/esm/api/scan_dataset_api.d.ts +4 -3
- package/dist/esm/api/scan_dataset_api.js +11 -3
- package/dist/esm/api/scan_dataset_api.js.map +1 -1
- package/dist/esm/api/trade_api.d.ts +2 -5
- package/dist/esm/api/trade_api.js.map +1 -1
- package/dist/esm/api/web_gateway_api.d.ts +2 -6
- package/dist/esm/api/web_gateway_api.js +9 -4
- package/dist/esm/api/web_gateway_api.js.map +1 -1
- package/dist/esm/api/work_package_api.d.ts +2 -2
- package/dist/esm/api/work_package_api.js.map +1 -1
- package/dist/esm/converters/date_converter.d.ts +2 -1
- package/dist/esm/converters/date_converter.js +14 -0
- package/dist/esm/converters/date_converter.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mixins/add_date_getter_and_setter_to_domain_model.d.ts +1 -1
- package/dist/esm/mixins/add_date_getter_and_setter_to_domain_model.js.map +1 -1
- package/dist/esm/mixins/add_instant_getter_and_setter_to_api_model.d.ts +1 -1
- package/dist/esm/mixins/add_instant_getter_and_setter_to_api_model.js.map +1 -1
- package/dist/esm/models/api/api_action_payload.d.ts +1 -1
- package/dist/esm/models/api/api_cloud_file.d.ts +2 -5
- package/dist/esm/models/api/api_cloud_file.js +1 -1
- package/dist/esm/models/api/api_cloud_file.js.map +1 -1
- package/dist/esm/models/api/api_cloud_file_location_3d.d.ts +1 -1
- package/dist/esm/models/api/api_cloud_file_location_3d.js.map +1 -1
- package/dist/esm/models/api/api_integration_credentials.d.ts +1 -1
- package/dist/esm/models/api/api_integration_project.d.ts +1 -1
- package/dist/esm/models/api/api_masterformat_progress.d.ts +1 -1
- package/dist/esm/models/api/api_pipeline.d.ts +1 -1
- package/dist/esm/models/api/api_project.d.ts +1 -1
- package/dist/esm/models/api/api_project_cost_analysis_progress.d.ts +1 -1
- package/dist/esm/models/api/api_project_masterformat_progress.d.ts +1 -1
- package/dist/esm/models/api/api_running_process.d.ts +1 -1
- package/dist/esm/models/api/api_view.d.ts +1 -1
- package/dist/esm/models/api/index.d.ts +64 -66
- package/dist/esm/models/api/index.js +63 -65
- package/dist/esm/models/api/index.js.map +1 -1
- package/dist/esm/models/api/integrations/autodesk/api_access_token.d.ts +8 -0
- package/dist/esm/models/api/integrations/autodesk/api_access_token.js +10 -0
- package/dist/esm/models/api/integrations/autodesk/api_access_token.js.map +1 -0
- package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.d.ts +3 -0
- package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.js +3 -0
- package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.js.map +1 -0
- package/dist/esm/models/api/integrations/autodesk/api_hubs.d.ts +7 -0
- package/dist/esm/models/api/integrations/autodesk/api_hubs.js +8 -0
- package/dist/esm/models/api/integrations/autodesk/api_hubs.js.map +1 -0
- package/dist/esm/models/api/integrations/autodesk/api_projects.d.ts +7 -0
- package/dist/esm/models/api/integrations/autodesk/api_projects.js +8 -0
- package/dist/esm/models/api/integrations/autodesk/api_projects.js.map +1 -0
- package/dist/esm/models/api/integrations/autodesk/index.d.ts +4 -0
- package/dist/esm/models/api/integrations/autodesk/index.js +5 -0
- package/dist/esm/models/api/integrations/autodesk/index.js.map +1 -0
- package/dist/esm/models/api/integrations/index.d.ts +2 -0
- package/dist/esm/models/api/integrations/index.js +3 -0
- package/dist/esm/models/api/integrations/index.js.map +1 -0
- package/dist/esm/models/api/{PbeTsvType.js → pbe_tsv_type.js} +1 -1
- package/dist/esm/models/api/pbe_tsv_type.js.map +1 -0
- package/dist/esm/models/api/{api_photo_area.js → photos/api_photo_area.js} +1 -1
- package/dist/esm/models/api/photos/api_photo_area.js.map +1 -0
- package/dist/esm/models/api/{api_photo_location.d.ts → photos/api_photo_location.d.ts} +4 -4
- package/dist/esm/models/api/{api_photo_location.js → photos/api_photo_location.js} +1 -1
- package/dist/esm/models/api/photos/api_photo_location.js.map +1 -0
- package/dist/esm/models/api/{api_photo_location_3d.d.ts → photos/api_photo_location_3d.d.ts} +2 -2
- package/dist/esm/models/api/{api_photo_location_3d.js → photos/api_photo_location_3d.js} +2 -2
- package/dist/esm/models/api/photos/api_photo_location_3d.js.map +1 -0
- package/dist/esm/models/api/{api_photo_session.d.ts → photos/api_photo_session.d.ts} +1 -1
- package/dist/esm/models/api/{api_photo_session.js → photos/api_photo_session.js} +2 -2
- package/dist/esm/models/api/photos/api_photo_session.js.map +1 -0
- package/dist/esm/models/api/photos/index.d.ts +4 -0
- package/dist/esm/models/api/photos/index.js +5 -0
- package/dist/esm/models/api/photos/index.js.map +1 -0
- package/dist/esm/models/enums/api_purpose_type.js.map +1 -0
- package/dist/esm/{models/api/type_aliases.d.ts → typings/type_aliases/index.d.ts} +31 -25
- package/dist/esm/typings/type_aliases/index.js +2 -0
- package/dist/esm/typings/type_aliases/index.js.map +1 -0
- package/dist/esm/utilities/{pollPipeline.js → poll_pipeline.js} +1 -1
- package/dist/esm/utilities/poll_pipeline.js.map +1 -0
- package/package.json +1 -1
- package/source/api/comment_api.ts +9 -6
- package/source/api/element_api.ts +7 -5
- package/source/api/file_information_api.ts +8 -8
- package/source/api/floor_api.ts +6 -7
- package/source/api/group_api.ts +5 -4
- package/source/api/integrations_api.ts +166 -127
- package/source/api/photo_area_api.ts +5 -3
- package/source/api/pipeline_api.ts +6 -6
- package/source/api/project_api.ts +21 -15
- package/source/api/recipe_api.ts +3 -3
- package/source/api/report_api.ts +52 -37
- package/source/api/scan_dataset_api.ts +24 -10
- package/source/api/trade_api.ts +7 -7
- package/source/api/web_gateway_api.ts +57 -27
- package/source/api/work_package_api.ts +4 -2
- package/source/converters/date_converter.ts +14 -1
- package/source/index.ts +1 -0
- package/source/mixins/add_date_getter_and_setter_to_domain_model.ts +3 -1
- package/source/mixins/add_instant_getter_and_setter_to_api_model.ts +2 -1
- package/source/models/api/api_action_payload.ts +1 -1
- package/source/models/api/api_cloud_file.ts +2 -3
- package/source/models/api/api_cloud_file_location_3d.ts +3 -2
- package/source/models/api/api_integration_credentials.ts +1 -1
- package/source/models/api/api_integration_project.ts +1 -1
- package/source/models/api/api_masterformat_progress.ts +1 -1
- package/source/models/api/api_pipeline.ts +1 -1
- package/source/models/api/api_project.ts +1 -1
- package/source/models/api/api_project_cost_analysis_progress.ts +1 -1
- package/source/models/api/api_project_masterformat_progress.ts +1 -1
- package/source/models/api/api_running_process.ts +1 -1
- package/source/models/api/api_view.ts +1 -1
- package/source/models/api/index.ts +64 -66
- package/source/models/api/integrations/autodesk/api_access_token.ts +16 -0
- package/source/models/api/integrations/autodesk/api_autodesk_attriibutes.ts +3 -0
- package/source/models/api/integrations/autodesk/api_hubs.ts +13 -0
- package/source/models/api/integrations/autodesk/api_projects.ts +13 -0
- package/source/models/api/integrations/autodesk/index.ts +4 -0
- package/source/models/api/integrations/index.ts +2 -0
- package/source/models/api/{api_photo_area.ts → photos/api_photo_area.ts} +10 -2
- package/source/models/api/{api_photo_location.ts → photos/api_photo_location.ts} +5 -5
- package/source/models/api/{api_photo_location_3d.ts → photos/api_photo_location_3d.ts} +3 -3
- package/source/models/api/{api_photo_session.ts → photos/api_photo_session.ts} +3 -3
- package/source/models/api/photos/index.ts +4 -0
- package/source/typings/modules.d.ts +0 -16
- package/source/{models/api/type_aliases.ts → typings/type_aliases/index.ts} +32 -22
- package/source/utilities/poll_pipeline.ts +19 -0
- package/dist/esm/models/api/PbeTsvType.js.map +0 -1
- package/dist/esm/models/api/api_photo_area.js.map +0 -1
- package/dist/esm/models/api/api_photo_location.js.map +0 -1
- package/dist/esm/models/api/api_photo_location_3d.js.map +0 -1
- package/dist/esm/models/api/api_photo_session.js.map +0 -1
- package/dist/esm/models/api/api_purpose_type.js.map +0 -1
- package/dist/esm/models/api/type_aliases.js +0 -2
- package/dist/esm/models/api/type_aliases.js.map +0 -1
- package/dist/esm/utilities/pollPipeline.js.map +0 -1
- package/source/typings/type_aliases/index.d.ts +0 -65
- package/source/utilities/pollPipeline.ts +0 -19
- /package/dist/esm/models/api/{PbeTsvType.d.ts → pbe_tsv_type.d.ts} +0 -0
- /package/dist/esm/models/api/{api_photo_area.d.ts → photos/api_photo_area.d.ts} +0 -0
- /package/dist/esm/models/{api → enums}/api_purpose_type.d.ts +0 -0
- /package/dist/esm/models/{api → enums}/api_purpose_type.js +0 -0
- /package/dist/esm/utilities/{pollPipeline.d.ts → poll_pipeline.d.ts} +0 -0
- /package/source/models/api/{PbeTsvType.ts → pbe_tsv_type.ts} +0 -0
- /package/source/models/{api → enums}/api_purpose_type.ts +0 -0
|
@@ -1,151 +1,190 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ApiIntegrationCredentials,
|
|
3
|
-
ApiIntegrationCredentialsType,
|
|
4
|
-
ApiIntegrationProject,
|
|
5
|
-
ApiRunningProcess,
|
|
6
|
-
AssociationIds,
|
|
7
|
-
User
|
|
8
|
-
} from "../models";
|
|
9
1
|
import Http from "../utilities/http";
|
|
10
2
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
11
|
-
import {ApiObservationRequest} from "../models/api/integrations/procore/api_observation_request";
|
|
12
3
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}: AssociationIds, credentialType: ApiIntegrationCredentialsType, user: User): Promise<ApiIntegrationCredentials> {
|
|
19
|
-
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}`;
|
|
20
|
-
return Http.get(url, user) as unknown as Promise<ApiIntegrationCredentials>;
|
|
21
|
-
}
|
|
4
|
+
import type ApiAutodeskAccessToken from "../models/api/integrations/autodesk/api_access_token";
|
|
5
|
+
import type ApiHubs from "../models/api/integrations/autodesk/api_hubs";
|
|
6
|
+
import type ApiProjects from "../models/api/integrations/autodesk/api_projects";
|
|
7
|
+
import type { ApiIntegrationCredentials, ApiIntegrationCredentialsType, ApiIntegrationProject, ApiObservationRequest, ApiRunningProcess, User } from "../models";
|
|
8
|
+
import type { AssociationIds } from "type_aliases";
|
|
22
9
|
|
|
23
|
-
|
|
24
|
-
organizationId,
|
|
25
|
-
projectId
|
|
26
|
-
}: AssociationIds, credentialType: ApiIntegrationCredentialsType, user: User): Promise<ApiIntegrationProject[]> {
|
|
27
|
-
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}/projects`;
|
|
28
|
-
return Http.get(url, user) as unknown as Promise<ApiIntegrationProject[]>;
|
|
29
|
-
}
|
|
10
|
+
export default class IntegrationsApi {
|
|
30
11
|
|
|
31
|
-
|
|
12
|
+
static getIntegrationCredentials({
|
|
13
|
+
organizationId,
|
|
14
|
+
projectId
|
|
15
|
+
}: AssociationIds,
|
|
16
|
+
credentialType: ApiIntegrationCredentialsType,
|
|
17
|
+
user: User): Promise<ApiIntegrationCredentials> {
|
|
18
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}`;
|
|
19
|
+
return Http.get(url, user) as unknown as Promise<ApiIntegrationCredentials>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static getIntegrationProjectsForCredentials({
|
|
32
23
|
organizationId,
|
|
33
24
|
projectId
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
}: AssociationIds,
|
|
26
|
+
credentialType: ApiIntegrationCredentialsType,
|
|
27
|
+
user: User): Promise<ApiIntegrationProject[]> {
|
|
28
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}/projects`;
|
|
29
|
+
return Http.get(url, user) as unknown as Promise<ApiIntegrationProject[]>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static getProjectIntegrationCredentials({
|
|
33
|
+
organizationId,
|
|
34
|
+
projectId
|
|
35
|
+
}: AssociationIds, user: User): Promise<ApiIntegrationCredentials[]> {
|
|
36
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials`;
|
|
37
|
+
return Http.get(url, user) as unknown as Promise<ApiIntegrationCredentials[]>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static saveIntegrationCredentials({
|
|
41
|
+
organizationId,
|
|
42
|
+
projectId
|
|
43
|
+
}: AssociationIds,
|
|
44
|
+
credentials: ApiIntegrationCredentials,
|
|
45
|
+
user: User): Promise<ApiIntegrationCredentials> {
|
|
46
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentials.credentialsType}`;
|
|
47
|
+
return Http.put(url, user, credentials) as unknown as Promise<ApiIntegrationCredentials>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static syncIntegrationProjects({
|
|
51
|
+
organizationId,
|
|
52
|
+
projectId
|
|
53
|
+
}: AssociationIds,
|
|
54
|
+
credentialsType: ApiIntegrationCredentialsType,
|
|
55
|
+
user: User): Promise<ApiRunningProcess> {
|
|
56
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialsType}/sync-projects`;
|
|
57
|
+
return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static syncIntegrationPhotoAreas({
|
|
61
|
+
organizationId,
|
|
62
|
+
projectId
|
|
63
|
+
}: AssociationIds,
|
|
64
|
+
credentialsType: ApiIntegrationCredentialsType,
|
|
65
|
+
user: User): Promise<ApiRunningProcess> {
|
|
66
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialsType}/sync-photo-areas`;
|
|
67
|
+
return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static updateProjectIntegrationProject({
|
|
71
|
+
organizationId,
|
|
72
|
+
projectId
|
|
73
|
+
}: AssociationIds,
|
|
74
|
+
integrationProject: ApiIntegrationProject | null,
|
|
75
|
+
user: User): Promise<void> {
|
|
76
|
+
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/set-integration-project`;
|
|
77
|
+
return Http.post(url, user, integrationProject) as unknown as Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static checkProcoreAccessToken(procoreAccessToken: string,
|
|
81
|
+
user: User): Promise<{ expiresInSeconds: number }> {
|
|
82
|
+
if (!procoreAccessToken) {
|
|
83
|
+
return Promise.reject(new Error("Procore access token not found"));
|
|
37
84
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
85
|
+
let url = `${Http.baseUrl()}/integrations/procore/access-token?procore-access-token=${procoreAccessToken}`;
|
|
86
|
+
return Http.get(url, user) as unknown as Promise<{ expiresInSeconds: number }>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static pushPdfToProcore({
|
|
90
|
+
projectId,
|
|
91
|
+
floorId,
|
|
92
|
+
scanDatasetId
|
|
93
|
+
}: AssociationIds,
|
|
94
|
+
procoreProjectId: string,
|
|
95
|
+
procoreCompanyId: string,
|
|
96
|
+
procoreAccessToken: string,
|
|
97
|
+
pdfType: string,
|
|
98
|
+
user: User): Promise<{
|
|
99
|
+
id: number
|
|
100
|
+
}>
|
|
101
|
+
{
|
|
102
|
+
if (!projectId) {
|
|
103
|
+
return Promise.reject(new Error("Project not loaded yet"));
|
|
45
104
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
105
|
+
const url = `${Http.baseUrl()}/projects/${projectId}/push-report-to-procore/${pdfType}?procore-project-id=${procoreProjectId}&procore-company-id=${procoreCompanyId}&procore-access-token=${procoreAccessToken}`;
|
|
106
|
+
return Http.post(url, user, null) as unknown as Promise<{ id: number }>;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static getProcoreProjects(procoreAccessToken: string,
|
|
110
|
+
companyId: string,
|
|
111
|
+
user: User): Promise<{ lastUpdated: number, projectId: string | number }[]> {
|
|
112
|
+
if (!procoreAccessToken) {
|
|
113
|
+
return Promise.reject(new Error("Procore access token not found"));
|
|
53
114
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialsType}/sync-photo-areas`;
|
|
60
|
-
return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
|
|
115
|
+
let url = `${Http.baseUrl()}/integrations/procore/projects`;
|
|
116
|
+
const params = [];
|
|
117
|
+
params.push(`procore-access-token=${procoreAccessToken}`);
|
|
118
|
+
if (companyId) {
|
|
119
|
+
params.push(`companyId=${companyId}`);
|
|
61
120
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
121
|
+
url += "?" + params.join("&");
|
|
122
|
+
return Http.get(url, user) as unknown as Promise<{ lastUpdated: number, projectId: string | number }[]>;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static getProcoreCompanies(procoreAccessToken: string,
|
|
126
|
+
user: User): Promise<{ name: string, id: string | number }[]> {
|
|
127
|
+
if (!procoreAccessToken) {
|
|
128
|
+
return Promise.reject(new Error("Procore access token not found"));
|
|
69
129
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
130
|
+
let url = `${Http.baseUrl()}/integrations/procore/companies?procore-access-token=${procoreAccessToken}`;
|
|
131
|
+
return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number }[]>;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
static listProcoreObservationTypes(procoreAccessToken: string,
|
|
135
|
+
companyId: string,
|
|
136
|
+
user: User): Promise<{ name: string, id: string | number, category: string }[]> {
|
|
137
|
+
if (!procoreAccessToken) {
|
|
138
|
+
return Promise.reject(new Error("Procore access token not found"));
|
|
78
139
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
projectId,
|
|
82
|
-
floorId,
|
|
83
|
-
scanDatasetId
|
|
84
|
-
}: AssociationIds, procoreProjectId: string, procoreCompanyId: string, procoreAccessToken: string, pdfType: string, user: User): Promise<{
|
|
85
|
-
id: number
|
|
86
|
-
}> {
|
|
87
|
-
if (!projectId) {
|
|
88
|
-
return Promise.reject(new Error("Project not loaded yet"));
|
|
89
|
-
}
|
|
90
|
-
const url = `${Http.baseUrl()}/projects/${projectId}/push-report-to-procore/${pdfType}?procore-project-id=${procoreProjectId}&procore-company-id=${procoreCompanyId}&procore-access-token=${procoreAccessToken}`;
|
|
91
|
-
return Http.post(url, user, null) as unknown as Promise<{ id: number }>;
|
|
140
|
+
if (!companyId) {
|
|
141
|
+
return Promise.reject(new Error("company id not found"));
|
|
92
142
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
143
|
+
let url = `${Http.baseUrl()}/integrations/procore/${companyId}/observation-types?procore-access-token=${procoreAccessToken}`;
|
|
144
|
+
return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number, category: string }[]>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static CreateProcoreObservation(procoreAccessToken: string,
|
|
148
|
+
companyId: string,
|
|
149
|
+
projectId: string,
|
|
150
|
+
observationRequest: ApiObservationRequest,
|
|
151
|
+
user: User): Promise<void> {
|
|
152
|
+
if (!procoreAccessToken) {
|
|
153
|
+
return Promise.reject(new Error("Procore access token not found"));
|
|
154
|
+
}
|
|
155
|
+
if (!projectId) {
|
|
156
|
+
return Promise.reject(new Error("project id not found"));
|
|
157
|
+
}
|
|
158
|
+
if (!companyId) {
|
|
159
|
+
return Promise.reject(new Error("company id not found"));
|
|
108
160
|
}
|
|
161
|
+
let url = `${Http.baseUrl()}/integrations/procore/${companyId}/${projectId}/create-observation?procore-access-token=${procoreAccessToken}`;
|
|
162
|
+
return Http.post(url, user, observationRequest) as unknown as Promise<void>;
|
|
163
|
+
}
|
|
109
164
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return Promise.reject(new Error("Procore access token not found"));
|
|
114
|
-
}
|
|
115
|
-
let url = `${Http.baseUrl()}/integrations/procore/companies?procore-access-token=${procoreAccessToken}`;
|
|
116
|
-
return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number }[]>;
|
|
165
|
+
static getAutodeskAccessToken(code: string, redirectUri: string, user: User): Promise<ApiAutodeskAccessToken> {
|
|
166
|
+
if (!code || !redirectUri) {
|
|
167
|
+
return Promise.reject(new Error("Invalid client secret or redirectUri"));
|
|
117
168
|
}
|
|
169
|
+
const url = `${Http.baseUrl()}/integrations/autodesk/access-token?code=${code}&redirect-uri=${redirectUri}`;
|
|
170
|
+
return Http.get(url, user) as unknown as Promise<ApiAutodeskAccessToken>;
|
|
171
|
+
}
|
|
118
172
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (!procoreAccessToken) {
|
|
123
|
-
return Promise.reject(new Error("Procore access token not found"));
|
|
124
|
-
}
|
|
125
|
-
if (!companyId) {
|
|
126
|
-
return Promise.reject(new Error("company id not found"));
|
|
127
|
-
}
|
|
128
|
-
let url = `${Http.baseUrl()}/integrations/procore/${companyId}/observation-types?procore-access-token=${procoreAccessToken}`;
|
|
129
|
-
return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number, category: string }[]>;
|
|
173
|
+
static getAutodeskHubs(access_token: string, user: User): Promise<ApiHubs> {
|
|
174
|
+
if (!access_token) {
|
|
175
|
+
return Promise.reject(new Error("Invalid access token"));
|
|
130
176
|
}
|
|
177
|
+
const url = `${Http.baseUrl()}/integrations/autodesk/hubs?access-token=${access_token}`;
|
|
178
|
+
return Http.get(url, user) as unknown as Promise<ApiHubs>;
|
|
179
|
+
}
|
|
131
180
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
observationRequest: ApiObservationRequest,
|
|
136
|
-
user: User): Promise<void> {
|
|
137
|
-
if (!procoreAccessToken) {
|
|
138
|
-
return Promise.reject(new Error("Procore access token not found"));
|
|
139
|
-
}
|
|
140
|
-
if (!projectId) {
|
|
141
|
-
return Promise.reject(new Error("project id not found"));
|
|
142
|
-
}
|
|
143
|
-
if (!companyId) {
|
|
144
|
-
return Promise.reject(new Error("company id not found"));
|
|
145
|
-
}
|
|
146
|
-
let url = `${Http.baseUrl()}/integrations/procore/${companyId}/${projectId}/create-observation?procore-access-token=${procoreAccessToken}`;
|
|
147
|
-
return Http.post(url, user, observationRequest) as unknown as Promise<void>;
|
|
181
|
+
static getAutodeskProjects(access_token: string, hubId: string, user: User): Promise<ApiProjects> {
|
|
182
|
+
if (!access_token || !hubId) {
|
|
183
|
+
return Promise.reject(new Error("Invalid access token or hubId"));
|
|
148
184
|
}
|
|
185
|
+
const url = `${Http.baseUrl()}/integrations/autodesk/projects?access-token=${access_token}&hubId=${hubId}`;
|
|
186
|
+
return Http.get(url, user) as unknown as Promise<ApiProjects>;
|
|
187
|
+
}
|
|
149
188
|
|
|
150
189
|
}
|
|
151
190
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { isArray } from "underscore";
|
|
2
|
-
|
|
3
|
-
import { User } from "../utilities/get_authorization_headers";
|
|
4
|
-
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
2
|
+
|
|
5
3
|
import Http from "../utilities/http";
|
|
4
|
+
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
5
|
+
|
|
6
|
+
import type { ApiPhotoArea, ApiPhotoLocation, ApiPhotoLocation3d, ApiPhotoSession, User } from "../models";
|
|
7
|
+
import type { AssociationIds } from "type_aliases";
|
|
6
8
|
|
|
7
9
|
export default class PhotoAreaApi {
|
|
8
10
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AssociationIds } from "../models";
|
|
2
1
|
import Http from "../utilities/http";
|
|
3
2
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
4
|
-
|
|
5
|
-
import ApiPipeline,
|
|
3
|
+
|
|
4
|
+
import type { ApiPipeline, ApiPipelineArgument, User } from "../models";
|
|
5
|
+
import type { AssociationIds } from "type_aliases";
|
|
6
6
|
|
|
7
7
|
export default class PipelineApi {
|
|
8
8
|
static triggerPipeline(body: ApiPipelineArgument = {}, user: User): Promise<ApiPipeline> {
|
|
@@ -10,16 +10,16 @@ export default class PipelineApi {
|
|
|
10
10
|
return Http.post(url, user, body) as unknown as Promise<ApiPipeline>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
static checkPipelineStatus({projectId}: AssociationIds, pipelineId: number, user: User): Promise<ApiPipeline> {
|
|
13
|
+
static checkPipelineStatus({ projectId }: AssociationIds, pipelineId: number, user: User): Promise<ApiPipeline> {
|
|
14
14
|
const url = `${Http.baseUrl()}/pipelines/${pipelineId}`;
|
|
15
15
|
return Http.get(url, user) as unknown as Promise<ApiPipeline>;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
static getFloorPipelines({projectId, floorId}: AssociationIds, user: User): Promise<ApiPipeline[]> {
|
|
18
|
+
static getFloorPipelines({ projectId, floorId }: AssociationIds, user: User): Promise<ApiPipeline[]> {
|
|
19
19
|
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/pipelines`;
|
|
20
20
|
console.log(url);
|
|
21
21
|
return Http.get(url, user) as unknown as Promise<ApiPipeline[]>;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
makeErrorsPretty(PipelineApi)
|
|
25
|
+
makeErrorsPretty(PipelineApi);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import getAuthorizationHeaders
|
|
1
|
+
import getAuthorizationHeaders from "../utilities/get_authorization_headers";
|
|
2
2
|
import Http from "../utilities/http";
|
|
3
3
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
4
4
|
import { DateConverter } from "../converters";
|
|
5
|
+
import { PbeTsvType } from "../models/api/pbe_tsv_type";
|
|
5
6
|
|
|
6
|
-
import type { ApiClassificationCode, ApiCloudFile, ApiMasterformatProgress, ApiProject, ApiProjectCostAnalysisProgress, ApiProjectCostAnalysisProgressValidationResult, ApiProjectListing, ApiProjectWorkPackage, ApiProjectWorkPackageCost, ApiRunningProcess,
|
|
7
|
-
import type { DateLike } from "type_aliases";
|
|
8
|
-
import {PbeTsvType} from "../models/api/PbeTsvType";
|
|
7
|
+
import type { ApiClassificationCode, ApiCloudFile, ApiMasterformatProgress, ApiProject, ApiProjectCostAnalysisProgress, ApiProjectCostAnalysisProgressValidationResult, ApiProjectListing, ApiProjectWorkPackage, ApiProjectWorkPackageCost, ApiRunningProcess, ProgressType, ProjectWorkPackageType, User } from "../models";
|
|
8
|
+
import type { AssociationIds, DateLike } from "type_aliases";
|
|
9
9
|
|
|
10
10
|
export default class ProjectApi {
|
|
11
11
|
static listProjectsForOrganization(organizationId: string, user: User): Promise<ApiProject[]> {
|
|
@@ -155,34 +155,36 @@ export default class ProjectApi {
|
|
|
155
155
|
static generateMasterformatProgress({ projectId }: AssociationIds,
|
|
156
156
|
reportDate: DateLike,
|
|
157
157
|
masterformatVersion: number,
|
|
158
|
-
user: User)
|
|
158
|
+
user: User)
|
|
159
|
+
{
|
|
159
160
|
const formattedDate = DateConverter.dateToISO(reportDate);
|
|
160
161
|
const url = `${Http.baseUrl()}/projects/${projectId}/masterformat-progress-report?masterformatVersion=${masterformatVersion}&reportDate=${formattedDate}`;
|
|
161
162
|
return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
static getFiltered5dTsv({projectId}: AssociationIds, projectName: string, fileName: string, filter, user:User) {
|
|
165
|
+
static getFiltered5dTsv({ projectId }: AssociationIds, projectName: string, fileName: string, filter, user: User) {
|
|
165
166
|
const url = `${Http.baseUrl()}/projects/${projectId}/cost-analysis-progress/line-items/${fileName}`;
|
|
166
167
|
return Http.put(url, user, filter, "application/json", "text/tab-separated-values") as unknown as Promise<string>;
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
static getClassificationCodes({projectId}: AssociationIds, user:User) {
|
|
170
|
+
static getClassificationCodes({ projectId }: AssociationIds, user: User) {
|
|
170
171
|
const url = `${Http.baseUrl()}/projects/${projectId}/classification-codes`;
|
|
171
172
|
return Http.get(url, user) as unknown as Promise<ApiClassificationCode[]>;
|
|
172
173
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
|
|
175
|
+
static checkWbsStatus({ projectId }: AssociationIds, user: User) {
|
|
176
|
+
const url = `${Http.baseUrl()}/projects/${projectId}/cost-analysis-progress/validations`;
|
|
177
|
+
return Http.get(url, user) as unknown as Promise<ApiProjectCostAnalysisProgressValidationResult>;
|
|
176
178
|
};
|
|
177
179
|
|
|
178
|
-
static updateMasterformatSelection({projectId, floorId}: AssociationIds, masterformatTree, user: User) {
|
|
180
|
+
static updateMasterformatSelection({ projectId, floorId }: AssociationIds, masterformatTree, user: User) {
|
|
179
181
|
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/cost-analysis-progress-modeled-total-cost`;
|
|
180
182
|
return Http.put(url, user, masterformatTree) as unknown as Promise<ApiProjectCostAnalysisProgress[]>;
|
|
181
183
|
}
|
|
182
184
|
|
|
183
|
-
static getWorkPackageCosts({projectId}: AssociationIds, workPackageType: ProjectWorkPackageType, user: User) {
|
|
185
|
+
static getWorkPackageCosts({ projectId }: AssociationIds, workPackageType: ProjectWorkPackageType, user: User) {
|
|
184
186
|
const url = `${Http.baseUrl()}/projects/${projectId}/work-packages/${workPackageType}/costs`;
|
|
185
|
-
return Http.get(url, user) as unknown as Promise<ApiProjectWorkPackageCost[]
|
|
187
|
+
return Http.get(url, user) as unknown as Promise<ApiProjectWorkPackageCost[]>;
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
static generateAllMasterformatProgress({ projectId }: AssociationIds,
|
|
@@ -194,7 +196,7 @@ export default class ProjectApi {
|
|
|
194
196
|
return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
|
|
195
197
|
}
|
|
196
198
|
|
|
197
|
-
static updateProjectExportTsv({ projectId }: AssociationIds, tsvContent: string, user: User
|
|
199
|
+
static updateProjectExportTsv({ projectId }: AssociationIds, tsvContent: string, user: User) {
|
|
198
200
|
let multipartFormData = new FormData();
|
|
199
201
|
let file = new Blob([tsvContent], { type: "text/tab-separated-values" });
|
|
200
202
|
multipartFormData.append("file", file, "file.tsv");
|
|
@@ -212,4 +214,8 @@ export default class ProjectApi {
|
|
|
212
214
|
}
|
|
213
215
|
}
|
|
214
216
|
|
|
215
|
-
makeErrorsPretty(ProjectApi,
|
|
217
|
+
makeErrorsPretty(ProjectApi,
|
|
218
|
+
{
|
|
219
|
+
exclude: ["getProjectDeviationsReportTsvUrl", "getTradeBreakdownTsvUrl"],
|
|
220
|
+
overrideErrorMessage: ["getFiltered5dTsv", "saveTradeBreakdownTsv"]
|
|
221
|
+
});
|
package/source/api/recipe_api.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { User } from "../utilities/get_authorization_headers";
|
|
2
1
|
import Http from "../utilities/http";
|
|
3
|
-
import { AssociationIds } from "../models";
|
|
4
2
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
5
|
-
|
|
3
|
+
|
|
4
|
+
import type { ApiRecipe, User } from "../models";
|
|
5
|
+
import type { AssociationIds } from "type_aliases";
|
|
6
6
|
|
|
7
7
|
export default class RecipeApi {
|
|
8
8
|
static getGlobalRecipe({ recipeId }: AssociationIds, user: User, ): Promise<ApiRecipe|null> {
|
package/source/api/report_api.ts
CHANGED
|
@@ -1,42 +1,57 @@
|
|
|
1
|
-
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
2
|
-
import {AssociationIds} from "../models";
|
|
3
|
-
import {User} from "../utilities/get_authorization_headers";
|
|
4
1
|
import Http from "../utilities/http";
|
|
5
|
-
import
|
|
2
|
+
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
3
|
+
|
|
4
|
+
import type { ApiInspectReport, ApiInspectReportEntry, User } from "../models";
|
|
5
|
+
import type { AssociationIds } from "type_aliases";
|
|
6
6
|
|
|
7
7
|
export default class ReportApi {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
8
|
+
static createInspectReport({ projectId }: AssociationIds,
|
|
9
|
+
report: ApiInspectReport,
|
|
10
|
+
user: User): Promise<ApiInspectReport> {
|
|
11
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports`;
|
|
12
|
+
return Http.post(url, user, report) as unknown as Promise<ApiInspectReport>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static listInspectReports({ projectId }: AssociationIds, user: User): Promise<ApiInspectReport[]> {
|
|
16
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports`;
|
|
17
|
+
return Http.get(url, user) as unknown as Promise<ApiInspectReport[]>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static listInspectReportEntries({ projectId, inspectReportId }: AssociationIds,
|
|
21
|
+
user: User): Promise<ApiInspectReportEntry[]> {
|
|
22
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`;
|
|
23
|
+
return Http.get(url, user) as unknown as Promise<ApiInspectReportEntry[]>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static createInspectReportEntries({ projectId, inspectReportId }: AssociationIds,
|
|
27
|
+
reportEntries: ApiInspectReportEntry[],
|
|
28
|
+
user: User): Promise<ApiInspectReportEntry[]> {
|
|
29
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`;
|
|
30
|
+
return Http.post(url, user, reportEntries) as unknown as Promise<ApiInspectReportEntry[]>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static updateInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId }: AssociationIds,
|
|
34
|
+
reportEntry,
|
|
35
|
+
user): Promise<ApiInspectReportEntry> {
|
|
36
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`;
|
|
37
|
+
return Http.put(url, user, reportEntry) as unknown as Promise<ApiInspectReportEntry>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static updateInspectReport({ projectId, inspectReportId }: AssociationIds, report, user): Promise<ApiInspectReport> {
|
|
41
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`;
|
|
42
|
+
return Http.put(url, user, report) as unknown as Promise<ApiInspectReport>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static deleteInspectReport({ projectId, inspectReportId }: AssociationIds, user): Promise<void> {
|
|
46
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`;
|
|
47
|
+
return Http.delete(url, user) as unknown as Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static deleteInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId }: AssociationIds,
|
|
51
|
+
user: User): Promise<void> {
|
|
52
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`;
|
|
53
|
+
return Http.delete(url, user) as unknown as Promise<void>;
|
|
54
|
+
}
|
|
40
55
|
}
|
|
41
56
|
|
|
42
|
-
makeErrorsPretty(ReportApi);
|
|
57
|
+
makeErrorsPretty(ReportApi);
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import ApiView, { ApiViewArgument } from "../models/api/api_view";
|
|
2
1
|
import Http from "../utilities/http";
|
|
3
2
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
4
|
-
import { ApiBuiltStatus, ApiDetailedElement, ApiPhotoSession,
|
|
3
|
+
import type { ApiBuiltStatus, ApiDetailedElement, ApiPhotoSession, ApiScanDatasetQaState, ApiScannedElementType, ApiView, ApiViewArgument, User } from "../models";
|
|
4
|
+
import { ApiScanDataset } from "../models";
|
|
5
|
+
import type { AssociationIds, DateLike } from "type_aliases";
|
|
5
6
|
import { DateConverter } from "../converters";
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
function isApiScanDataset(obj: any): obj is Partial<ApiScanDataset> {
|
|
9
|
+
return obj.scanDate != null || obj.name != null
|
|
10
|
+
}
|
|
7
11
|
|
|
8
12
|
export default class ScanDatasetApi {
|
|
9
13
|
static listScanDatasetsForFloor({ projectId, floorId }: AssociationIds, user: User): Promise<ApiScanDataset[]> {
|
|
@@ -11,14 +15,24 @@ export default class ScanDatasetApi {
|
|
|
11
15
|
return Http.get(url, user) as unknown as Promise<ApiScanDataset[]>;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
static createScanDataset({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
static createScanDataset({ projectId, floorId }: AssociationIds,
|
|
19
|
+
apiScanDataset: Partial<ApiScanDataset>,
|
|
20
|
+
user: User): Promise<ApiScanDataset>
|
|
21
|
+
static createScanDataset({ projectId, floorId }: AssociationIds,
|
|
22
|
+
scanDate: DateLike,
|
|
23
|
+
user: User): Promise<ApiScanDataset>
|
|
24
|
+
static createScanDataset({ projectId, floorId }: AssociationIds,
|
|
25
|
+
scan: Partial<ApiScanDataset> | DateLike,
|
|
26
|
+
user: User): Promise<ApiScanDataset> {
|
|
27
|
+
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets`;
|
|
28
|
+
if (isApiScanDataset(scan)) {
|
|
29
|
+
return Http.post(url, user, scan) as unknown as Promise<ApiScanDataset>;
|
|
30
|
+
} else {
|
|
31
|
+
return Http.post(url + `?scanDate=${DateConverter.dateLikeToDate(scan).valueOf()}`, user) as unknown as Promise<ApiScanDataset>;
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
|
|
35
|
+
|
|
22
36
|
static deleteScanDataset({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise<void> {
|
|
23
37
|
let url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets/${scanDatasetId}`;
|
|
24
38
|
return Http.delete(url, user) as unknown as Promise<void>;
|
|
@@ -156,7 +170,7 @@ export default class ScanDatasetApi {
|
|
|
156
170
|
return Http.post(url, user, { sessionDate }) as unknown as Promise<ApiPhotoSession>;
|
|
157
171
|
}
|
|
158
172
|
|
|
159
|
-
static listScanDatasetsForProject({projectId}: AssociationIds, user: User): Promise<ApiScanDataset[]> {
|
|
173
|
+
static listScanDatasetsForProject({ projectId }: AssociationIds, user: User): Promise<ApiScanDataset[]> {
|
|
160
174
|
const url = `${Http.baseUrl()}/projects/${projectId}/scan-datasets`;
|
|
161
175
|
return Http.get(url, user) as unknown as Promise<ApiScanDataset[]>;
|
|
162
176
|
}
|