avvir 7.1.6 → 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.
Files changed (167) hide show
  1. package/dist/avvir_api.node.js +725 -609
  2. package/dist/esm/api/comment_api.d.ts +2 -2
  3. package/dist/esm/api/comment_api.js.map +1 -1
  4. package/dist/esm/api/element_api.d.ts +3 -3
  5. package/dist/esm/api/element_api.js.map +1 -1
  6. package/dist/esm/api/file_information_api.d.ts +3 -2
  7. package/dist/esm/api/file_information_api.js +4 -5
  8. package/dist/esm/api/file_information_api.js.map +1 -1
  9. package/dist/esm/api/floor_api.d.ts +3 -5
  10. package/dist/esm/api/floor_api.js +2 -1
  11. package/dist/esm/api/floor_api.js.map +1 -1
  12. package/dist/esm/api/group_api.d.ts +3 -3
  13. package/dist/esm/api/group_api.js.map +1 -1
  14. package/dist/esm/api/integrations_api.d.ts +5 -5
  15. package/dist/esm/api/integrations_api.js.map +1 -1
  16. package/dist/esm/api/photo_area_api.d.ts +2 -2
  17. package/dist/esm/api/photo_area_api.js +1 -1
  18. package/dist/esm/api/photo_area_api.js.map +1 -1
  19. package/dist/esm/api/pipeline_api.d.ts +2 -3
  20. package/dist/esm/api/pipeline_api.js.map +1 -1
  21. package/dist/esm/api/project_api.d.ts +3 -4
  22. package/dist/esm/api/project_api.js +6 -3
  23. package/dist/esm/api/project_api.js.map +1 -1
  24. package/dist/esm/api/recipe_api.d.ts +2 -3
  25. package/dist/esm/api/recipe_api.js.map +1 -1
  26. package/dist/esm/api/report_api.d.ts +2 -3
  27. package/dist/esm/api/report_api.js +1 -1
  28. package/dist/esm/api/report_api.js.map +1 -1
  29. package/dist/esm/api/scan_dataset_api.d.ts +4 -3
  30. package/dist/esm/api/scan_dataset_api.js +11 -3
  31. package/dist/esm/api/scan_dataset_api.js.map +1 -1
  32. package/dist/esm/api/trade_api.d.ts +2 -5
  33. package/dist/esm/api/trade_api.js.map +1 -1
  34. package/dist/esm/api/web_gateway_api.d.ts +2 -6
  35. package/dist/esm/api/web_gateway_api.js +9 -4
  36. package/dist/esm/api/web_gateway_api.js.map +1 -1
  37. package/dist/esm/api/work_package_api.d.ts +2 -2
  38. package/dist/esm/api/work_package_api.js.map +1 -1
  39. package/dist/esm/converters/date_converter.d.ts +2 -1
  40. package/dist/esm/converters/date_converter.js +14 -0
  41. package/dist/esm/converters/date_converter.js.map +1 -1
  42. package/dist/esm/index.d.ts +1 -0
  43. package/dist/esm/index.js +1 -0
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/mixins/add_date_getter_and_setter_to_domain_model.d.ts +1 -1
  46. package/dist/esm/mixins/add_date_getter_and_setter_to_domain_model.js.map +1 -1
  47. package/dist/esm/mixins/add_instant_getter_and_setter_to_api_model.d.ts +1 -1
  48. package/dist/esm/mixins/add_instant_getter_and_setter_to_api_model.js.map +1 -1
  49. package/dist/esm/models/api/api_action_payload.d.ts +1 -1
  50. package/dist/esm/models/api/api_cloud_file.d.ts +2 -5
  51. package/dist/esm/models/api/api_cloud_file.js +1 -1
  52. package/dist/esm/models/api/api_cloud_file.js.map +1 -1
  53. package/dist/esm/models/api/api_cloud_file_location_3d.d.ts +1 -1
  54. package/dist/esm/models/api/api_cloud_file_location_3d.js.map +1 -1
  55. package/dist/esm/models/api/api_integration_credentials.d.ts +1 -1
  56. package/dist/esm/models/api/api_integration_project.d.ts +1 -1
  57. package/dist/esm/models/api/api_masterformat_progress.d.ts +1 -1
  58. package/dist/esm/models/api/api_pipeline.d.ts +1 -1
  59. package/dist/esm/models/api/api_project.d.ts +1 -1
  60. package/dist/esm/models/api/api_project_cost_analysis_progress.d.ts +1 -1
  61. package/dist/esm/models/api/api_project_masterformat_progress.d.ts +1 -1
  62. package/dist/esm/models/api/api_running_process.d.ts +1 -1
  63. package/dist/esm/models/api/api_view.d.ts +1 -1
  64. package/dist/esm/models/api/index.d.ts +64 -66
  65. package/dist/esm/models/api/index.js +63 -65
  66. package/dist/esm/models/api/index.js.map +1 -1
  67. package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.d.ts +3 -0
  68. package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.js +3 -0
  69. package/dist/esm/models/api/integrations/autodesk/api_autodesk_attriibutes.js.map +1 -0
  70. package/dist/esm/models/api/integrations/autodesk/api_hubs.d.ts +2 -4
  71. package/dist/esm/models/api/integrations/autodesk/api_hubs.js +0 -2
  72. package/dist/esm/models/api/integrations/autodesk/api_hubs.js.map +1 -1
  73. package/dist/esm/models/api/integrations/autodesk/api_projects.d.ts +2 -4
  74. package/dist/esm/models/api/integrations/autodesk/api_projects.js +0 -2
  75. package/dist/esm/models/api/integrations/autodesk/api_projects.js.map +1 -1
  76. package/dist/esm/models/api/integrations/autodesk/index.d.ts +4 -0
  77. package/dist/esm/models/api/integrations/autodesk/index.js +5 -0
  78. package/dist/esm/models/api/integrations/autodesk/index.js.map +1 -0
  79. package/dist/esm/models/api/integrations/index.d.ts +2 -0
  80. package/dist/esm/models/api/integrations/index.js +3 -0
  81. package/dist/esm/models/api/integrations/index.js.map +1 -0
  82. package/dist/esm/models/api/{PbeTsvType.js → pbe_tsv_type.js} +1 -1
  83. package/dist/esm/models/api/pbe_tsv_type.js.map +1 -0
  84. package/dist/esm/models/api/{api_photo_area.js → photos/api_photo_area.js} +1 -1
  85. package/dist/esm/models/api/photos/api_photo_area.js.map +1 -0
  86. package/dist/esm/models/api/{api_photo_location.d.ts → photos/api_photo_location.d.ts} +4 -4
  87. package/dist/esm/models/api/{api_photo_location.js → photos/api_photo_location.js} +1 -1
  88. package/dist/esm/models/api/photos/api_photo_location.js.map +1 -0
  89. package/dist/esm/models/api/{api_photo_location_3d.d.ts → photos/api_photo_location_3d.d.ts} +2 -2
  90. package/dist/esm/models/api/{api_photo_location_3d.js → photos/api_photo_location_3d.js} +2 -2
  91. package/dist/esm/models/api/photos/api_photo_location_3d.js.map +1 -0
  92. package/dist/esm/models/api/{api_photo_session.d.ts → photos/api_photo_session.d.ts} +1 -1
  93. package/dist/esm/models/api/{api_photo_session.js → photos/api_photo_session.js} +2 -2
  94. package/dist/esm/models/api/photos/api_photo_session.js.map +1 -0
  95. package/dist/esm/models/api/photos/index.d.ts +4 -0
  96. package/dist/esm/models/api/photos/index.js +5 -0
  97. package/dist/esm/models/api/photos/index.js.map +1 -0
  98. package/dist/esm/models/enums/api_purpose_type.js.map +1 -0
  99. package/dist/esm/{models/api/type_aliases.d.ts → typings/type_aliases/index.d.ts} +31 -25
  100. package/dist/esm/typings/type_aliases/index.js +2 -0
  101. package/dist/esm/typings/type_aliases/index.js.map +1 -0
  102. package/dist/esm/utilities/{pollPipeline.js → poll_pipeline.js} +1 -1
  103. package/dist/esm/utilities/poll_pipeline.js.map +1 -0
  104. package/package.json +1 -1
  105. package/source/api/comment_api.ts +9 -6
  106. package/source/api/element_api.ts +7 -5
  107. package/source/api/file_information_api.ts +8 -8
  108. package/source/api/floor_api.ts +6 -7
  109. package/source/api/group_api.ts +5 -4
  110. package/source/api/integrations_api.ts +180 -168
  111. package/source/api/photo_area_api.ts +5 -3
  112. package/source/api/pipeline_api.ts +6 -6
  113. package/source/api/project_api.ts +21 -15
  114. package/source/api/recipe_api.ts +3 -3
  115. package/source/api/report_api.ts +52 -37
  116. package/source/api/scan_dataset_api.ts +24 -10
  117. package/source/api/trade_api.ts +7 -7
  118. package/source/api/web_gateway_api.ts +57 -27
  119. package/source/api/work_package_api.ts +4 -2
  120. package/source/converters/date_converter.ts +14 -1
  121. package/source/index.ts +1 -0
  122. package/source/mixins/add_date_getter_and_setter_to_domain_model.ts +3 -1
  123. package/source/mixins/add_instant_getter_and_setter_to_api_model.ts +2 -1
  124. package/source/models/api/api_action_payload.ts +1 -1
  125. package/source/models/api/api_cloud_file.ts +2 -3
  126. package/source/models/api/api_cloud_file_location_3d.ts +3 -2
  127. package/source/models/api/api_integration_credentials.ts +1 -1
  128. package/source/models/api/api_integration_project.ts +1 -1
  129. package/source/models/api/api_masterformat_progress.ts +1 -1
  130. package/source/models/api/api_pipeline.ts +1 -1
  131. package/source/models/api/api_project.ts +1 -1
  132. package/source/models/api/api_project_cost_analysis_progress.ts +1 -1
  133. package/source/models/api/api_project_masterformat_progress.ts +1 -1
  134. package/source/models/api/api_running_process.ts +1 -1
  135. package/source/models/api/api_view.ts +1 -1
  136. package/source/models/api/index.ts +64 -66
  137. package/source/models/api/integrations/autodesk/api_autodesk_attriibutes.ts +3 -0
  138. package/source/models/api/integrations/autodesk/api_hubs.ts +7 -9
  139. package/source/models/api/integrations/autodesk/api_projects.ts +7 -9
  140. package/source/models/api/integrations/autodesk/index.ts +4 -0
  141. package/source/models/api/integrations/index.ts +2 -0
  142. package/source/models/api/{api_photo_area.ts → photos/api_photo_area.ts} +10 -2
  143. package/source/models/api/{api_photo_location.ts → photos/api_photo_location.ts} +5 -5
  144. package/source/models/api/{api_photo_location_3d.ts → photos/api_photo_location_3d.ts} +3 -3
  145. package/source/models/api/{api_photo_session.ts → photos/api_photo_session.ts} +3 -3
  146. package/source/models/api/photos/index.ts +4 -0
  147. package/source/typings/modules.d.ts +0 -16
  148. package/source/{models/api/type_aliases.ts → typings/type_aliases/index.ts} +32 -22
  149. package/source/utilities/poll_pipeline.ts +19 -0
  150. package/dist/esm/models/api/PbeTsvType.js.map +0 -1
  151. package/dist/esm/models/api/api_photo_area.js.map +0 -1
  152. package/dist/esm/models/api/api_photo_location.js.map +0 -1
  153. package/dist/esm/models/api/api_photo_location_3d.js.map +0 -1
  154. package/dist/esm/models/api/api_photo_session.js.map +0 -1
  155. package/dist/esm/models/api/api_purpose_type.js.map +0 -1
  156. package/dist/esm/models/api/type_aliases.js +0 -2
  157. package/dist/esm/models/api/type_aliases.js.map +0 -1
  158. package/dist/esm/utilities/pollPipeline.js.map +0 -1
  159. package/source/typings/type_aliases/index.d.ts +0 -65
  160. package/source/utilities/pollPipeline.ts +0 -19
  161. /package/dist/esm/models/api/{PbeTsvType.d.ts → pbe_tsv_type.d.ts} +0 -0
  162. /package/dist/esm/models/api/{api_photo_area.d.ts → photos/api_photo_area.d.ts} +0 -0
  163. /package/dist/esm/models/{api → enums}/api_purpose_type.d.ts +0 -0
  164. /package/dist/esm/models/{api → enums}/api_purpose_type.js +0 -0
  165. /package/dist/esm/utilities/{pollPipeline.d.ts → poll_pipeline.d.ts} +0 -0
  166. /package/source/models/api/{PbeTsvType.ts → pbe_tsv_type.ts} +0 -0
  167. /package/source/models/{api → enums}/api_purpose_type.ts +0 -0
@@ -1,178 +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
- import ApiProjects from "../models/api/integrations/autodesk/api_projects";
13
- import ApiHubs from "../models/api/integrations/autodesk/api_hubs";
14
- import ApiAutodeskAccessToken from "../models/api/integrations/autodesk/api_access_token";
15
3
 
16
- export default class IntegrationsApi {
17
-
18
- static getIntegrationCredentials({
19
- organizationId,
20
- projectId
21
- }: AssociationIds, credentialType: ApiIntegrationCredentialsType, user: User): Promise<ApiIntegrationCredentials> {
22
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}`;
23
- return Http.get(url, user) as unknown as Promise<ApiIntegrationCredentials>;
24
- }
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";
25
9
 
26
- static getIntegrationProjectsForCredentials({
27
- organizationId,
28
- projectId
29
- }: AssociationIds, credentialType: ApiIntegrationCredentialsType, user: User): Promise<ApiIntegrationProject[]> {
30
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialType}/projects`;
31
- return Http.get(url, user) as unknown as Promise<ApiIntegrationProject[]>;
32
- }
10
+ export default class IntegrationsApi {
33
11
 
34
- static getProjectIntegrationCredentials({
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({
35
23
  organizationId,
36
24
  projectId
37
- }: AssociationIds, user: User): Promise<ApiIntegrationCredentials[]> {
38
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials`;
39
- return Http.get(url, user) as unknown as Promise<ApiIntegrationCredentials[]>;
40
- }
41
-
42
- static saveIntegrationCredentials({
43
- organizationId,
44
- projectId
45
- }: AssociationIds, credentials: ApiIntegrationCredentials, 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, credentialsType: ApiIntegrationCredentialsType, user: User): Promise<ApiRunningProcess> {
54
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialsType}/sync-projects`;
55
- return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
56
- }
57
-
58
- static syncIntegrationPhotoAreas({
59
- organizationId,
60
- projectId
61
- }: AssociationIds, credentialsType: ApiIntegrationCredentialsType, user: User): Promise<ApiRunningProcess> {
62
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/credentials/${credentialsType}/sync-photo-areas`;
63
- return Http.post(url, user) as unknown as Promise<ApiRunningProcess>;
64
- }
65
-
66
- static updateProjectIntegrationProject({
67
- organizationId,
68
- projectId
69
- }: AssociationIds, integrationProject: ApiIntegrationProject | null, user: User): Promise<void> {
70
- const url = `${Http.baseUrl()}/integrations/organizations/${organizationId}/projects/${projectId}/set-integration-project`;
71
- return Http.post(url, user, integrationProject) as unknown as Promise<void>;
72
- }
73
-
74
- static checkProcoreAccessToken(procoreAccessToken: string,
75
- user: User): Promise<{ expiresInSeconds: number }> {
76
- if (!procoreAccessToken) {
77
- return Promise.reject(new Error("Procore access token not found"));
78
- }
79
- let url = `${Http.baseUrl()}/integrations/procore/access-token?procore-access-token=${procoreAccessToken}`;
80
- return Http.get(url, user) as unknown as Promise<{ expiresInSeconds: number }>;
81
- }
82
-
83
- static pushPdfToProcore({
84
- projectId,
85
- floorId,
86
- scanDatasetId
87
- }: AssociationIds, procoreProjectId: string, procoreCompanyId: string, procoreAccessToken: string, pdfType: string, user: User): Promise<{
88
- id: number
89
- }> {
90
- if (!projectId) {
91
- return Promise.reject(new Error("Project not loaded yet"));
92
- }
93
- const url = `${Http.baseUrl()}/projects/${projectId}/push-report-to-procore/${pdfType}?procore-project-id=${procoreProjectId}&procore-company-id=${procoreCompanyId}&procore-access-token=${procoreAccessToken}`;
94
- return Http.post(url, user, null) as unknown as Promise<{ id: number }>;
95
- }
96
-
97
- static getProcoreProjects(procoreAccessToken: string,
98
- companyId: string,
99
- user: User): Promise<{ lastUpdated: number, projectId: string | number }[]> {
100
- if (!procoreAccessToken) {
101
- return Promise.reject(new Error("Procore access token not found"));
102
- }
103
- let url = `${Http.baseUrl()}/integrations/procore/projects`;
104
- const params = [];
105
- params.push(`procore-access-token=${procoreAccessToken}`)
106
- if (companyId) {
107
- params.push(`companyId=${companyId}`)
108
- }
109
- url += "?" + params.join("&");
110
- return Http.get(url, user) as unknown as Promise<{ lastUpdated: number, projectId: string | number }[]>;
111
- }
112
-
113
- static getProcoreCompanies(procoreAccessToken: string,
114
- user: User): Promise<{ name: string, id: string | number }[]> {
115
- if (!procoreAccessToken) {
116
- return Promise.reject(new Error("Procore access token not found"));
117
- }
118
- let url = `${Http.baseUrl()}/integrations/procore/companies?procore-access-token=${procoreAccessToken}`;
119
- return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number }[]>;
120
- }
121
-
122
- static listProcoreObservationTypes(procoreAccessToken: string,
123
- companyId: string,
124
- user: User): Promise<{ name: string, id: string | number, category: string }[]> {
125
- if (!procoreAccessToken) {
126
- return Promise.reject(new Error("Procore access token not found"));
127
- }
128
- if (!companyId) {
129
- return Promise.reject(new Error("company id not found"));
130
- }
131
- let url = `${Http.baseUrl()}/integrations/procore/${companyId}/observation-types?procore-access-token=${procoreAccessToken}`;
132
- return Http.get(url, user) as unknown as Promise<{ name: string, id: string | number, category: string }[]>;
133
- }
134
-
135
- static CreateProcoreObservation(procoreAccessToken: string,
136
- companyId: string,
137
- projectId: string,
138
- observationRequest: ApiObservationRequest,
139
- user: User): Promise<void> {
140
- if (!procoreAccessToken) {
141
- return Promise.reject(new Error("Procore access token not found"));
142
- }
143
- if (!projectId) {
144
- return Promise.reject(new Error("project id not found"));
145
- }
146
- if (!companyId) {
147
- return Promise.reject(new Error("company id not found"));
148
- }
149
- let url = `${Http.baseUrl()}/integrations/procore/${companyId}/${projectId}/create-observation?procore-access-token=${procoreAccessToken}`;
150
- return Http.post(url, user, observationRequest) as unknown as Promise<void>;
151
- }
152
-
153
- static getAutodeskAccessToken(code: string, redirectUri: string, user: User): Promise<ApiAutodeskAccessToken> {
154
- if (!code || !redirectUri) {
155
- return Promise.reject(new Error("Invalid client secret or redirectUri"));
156
- }
157
- const url = `${Http.baseUrl()}/integrations/autodesk/access-token?code=${code}&redirect-uri=${redirectUri}`;
158
- return Http.get(url, user) as unknown as Promise<ApiAutodeskAccessToken>;
159
- }
160
-
161
- static getAutodeskHubs(access_token: string, user: User): Promise<ApiHubs> {
162
- if (!access_token) {
163
- return Promise.reject(new Error("Invalid access token"));
164
- }
165
- const url = `${Http.baseUrl()}/integrations/autodesk/hubs?access-token=${access_token}`
166
- return Http.get(url, user) as unknown as Promise<ApiHubs>;
167
- }
168
-
169
- static getAutodeskProjects(access_token: string, hubId: string, user: User): Promise<ApiProjects> {
170
- if (!access_token || !hubId) {
171
- return Promise.reject(new Error("Invalid access token or hubId"));
172
- }
173
- const url = `${Http.baseUrl()}/integrations/autodesk/projects?access-token=${access_token}&hubId=${hubId}`;
174
- return Http.get(url, user) as unknown as Promise<ApiProjects>;
175
- }
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"));
84
+ }
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"));
104
+ }
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"));
114
+ }
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}`);
120
+ }
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"));
129
+ }
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"));
139
+ }
140
+ if (!companyId) {
141
+ return Promise.reject(new Error("company id not found"));
142
+ }
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"));
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
+ }
164
+
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"));
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
+ }
172
+
173
+ static getAutodeskHubs(access_token: string, user: User): Promise<ApiHubs> {
174
+ if (!access_token) {
175
+ return Promise.reject(new Error("Invalid access token"));
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
+ }
180
+
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"));
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
+ }
176
188
 
177
189
  }
178
190
 
@@ -1,8 +1,10 @@
1
1
  import { isArray } from "underscore";
2
- import { ApiPhotoArea, ApiPhotoLocation, ApiPhotoLocation3d, ApiPhotoSession, AssociationIds } from "../models";
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
- import { User } from "../utilities/get_authorization_headers";
5
- import ApiPipeline, { ApiPipelineArgument } from "../models/api/api_pipeline";
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, { User } from "../utilities/get_authorization_headers";
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, AssociationIds, ProgressType, ProjectWorkPackageType } from "../models";
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
- static checkWbsStatus({projectId}: AssociationIds, user: User) {
174
- const url = `${Http.baseUrl()}/projects/${projectId}/cost-analysis-progress/validations`
175
- return Http.get(url, user) as unknown as Promise<ApiProjectCostAnalysisProgressValidationResult>
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, dispatch) {
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, { exclude: ["getProjectDeviationsReportTsvUrl", "getTradeBreakdownTsvUrl"], overrideErrorMessage:["getFiltered5dTsv", "saveTradeBreakdownTsv"] });
217
+ makeErrorsPretty(ProjectApi,
218
+ {
219
+ exclude: ["getProjectDeviationsReportTsvUrl", "getTradeBreakdownTsvUrl"],
220
+ overrideErrorMessage: ["getFiltered5dTsv", "saveTradeBreakdownTsv"]
221
+ });
@@ -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
- import ApiRecipe from "../models/api/api_recipe";
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> {
@@ -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 {ApiInspectReport, ApiInspectReportEntry} from "../models";
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
- static createInspectReport({ projectId }: AssociationIds, report: ApiInspectReport, user: User): Promise<ApiInspectReport> {
9
- let url = `${Http.baseUrl()}/projects/${projectId}/reports`;
10
- return Http.post(url, user, report) as unknown as Promise<ApiInspectReport>;
11
- }
12
- static listInspectReports({projectId}: AssociationIds, user: User): Promise<ApiInspectReport[]> {
13
- let url = `${Http.baseUrl()}/projects/${projectId}/reports`;
14
- return Http.get(url, user) as unknown as Promise<ApiInspectReport[]>;
15
- }
16
- static listInspectReportEntries({projectId, inspectReportId}: AssociationIds, user: User): Promise<ApiInspectReportEntry[]> {
17
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`;
18
- return Http.get(url, user) as unknown as Promise<ApiInspectReportEntry[]>;
19
- }
20
- static createInspectReportEntries({ projectId, inspectReportId }: AssociationIds, reportEntries: ApiInspectReportEntry[], user: User): Promise<ApiInspectReportEntry[]> {
21
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries`;
22
- return Http.post(url, user, reportEntries) as unknown as Promise<ApiInspectReportEntry[]>;
23
- }
24
- static updateInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId }: AssociationIds, reportEntry, user): Promise<ApiInspectReportEntry> {
25
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`;
26
- return Http.put(url, user, reportEntry) as unknown as Promise<ApiInspectReportEntry>;
27
- }
28
- static updateInspectReport({ projectId, inspectReportId }: AssociationIds, report, user): Promise<ApiInspectReport> {
29
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`;
30
- return Http.put(url, user, report) as unknown as Promise<ApiInspectReport>;
31
- }
32
- static deleteInspectReport({ projectId, inspectReportId }: AssociationIds, user): Promise<void> {
33
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}`;
34
- return Http.delete(url, user) as unknown as Promise<void>;
35
- }
36
- static deleteInspectReportEntry({ projectId, inspectReportId, inspectReportEntryId}: AssociationIds, user: User): Promise<void> {
37
- let url = `${Http.baseUrl()}/projects/${projectId}/reports/${inspectReportId}/inspect-entries/${inspectReportEntryId}`;
38
- return Http.delete(url, user) as unknown as Promise<void>;
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);