avvir 1.0.1 → 2.0.1
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 +26 -3
- package/dist/esm/api/recipe_api.d.ts +1 -0
- package/dist/esm/api/recipe_api.js +4 -0
- package/dist/esm/api/recipe_api.js.map +1 -1
- package/dist/esm/api/scan_dataset_api.d.ts +2 -0
- package/dist/esm/api/scan_dataset_api.js +4 -0
- package/dist/esm/api/scan_dataset_api.js.map +1 -1
- package/dist/esm/models/api/api_scan_dataset.d.ts +13 -3
- package/dist/esm/models/api/api_scan_dataset.js +15 -3
- package/dist/esm/models/api/api_scan_dataset.js.map +1 -1
- package/dist/esm/models/api/type_aliases.d.ts +1 -0
- package/package.json +1 -1
- package/source/api/recipe_api.ts +5 -0
- package/source/api/scan_dataset_api.ts +13 -0
- package/source/models/api/api_scan_dataset.ts +17 -4
- package/source/models/api/type_aliases.ts +1 -0
package/dist/avvir_api.node.js
CHANGED
|
@@ -1164,6 +1164,11 @@ var RecipeApi = /** @class */ (function () {
|
|
|
1164
1164
|
var url = _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].baseUrl() + "/projects/" + projectId + "/recipes/" + recipeId;
|
|
1165
1165
|
return _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"]["delete"](url, user);
|
|
1166
1166
|
};
|
|
1167
|
+
RecipeApi.deleteProjectRecipeStep = function (_a, user) {
|
|
1168
|
+
var projectId = _a.projectId, recipeId = _a.recipeId, recipeStepId = _a.recipeStepId;
|
|
1169
|
+
var url = _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].baseUrl() + "/projects/" + projectId + "/recipes/" + recipeId + "/steps/" + recipeStepId;
|
|
1170
|
+
return _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"]["delete"](url, user);
|
|
1171
|
+
};
|
|
1167
1172
|
return RecipeApi;
|
|
1168
1173
|
}());
|
|
1169
1174
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RecipeApi);
|
|
@@ -1275,6 +1280,11 @@ var ScanDatasetApi = /** @class */ (function () {
|
|
|
1275
1280
|
var url = _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].baseUrl() + "/projects/" + projectId + "/floors/" + floorId + "/scan-datasets/" + scanDatasetId + "/photo-session/" + id;
|
|
1276
1281
|
return _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].post(url, user, { sessionDate: sessionDate });
|
|
1277
1282
|
};
|
|
1283
|
+
ScanDatasetApi.updateQaState = function (_a, qaState, user) {
|
|
1284
|
+
var projectId = _a.projectId, floorId = _a.floorId, scanDatasetId = _a.scanDatasetId;
|
|
1285
|
+
var url = _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].baseUrl() + "/projects/" + projectId + "/floors/" + floorId + "/scan-datasets/" + scanDatasetId + "/qa-state";
|
|
1286
|
+
return _utilities_http__WEBPACK_IMPORTED_MODULE_0__["default"].post(url, user, qaState);
|
|
1287
|
+
};
|
|
1278
1288
|
return ScanDatasetApi;
|
|
1279
1289
|
}());
|
|
1280
1290
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ScanDatasetApi);
|
|
@@ -4611,6 +4621,7 @@ var ApiRunningProcess = /** @class */ (function () {
|
|
|
4611
4621
|
"use strict";
|
|
4612
4622
|
__webpack_require__.r(__webpack_exports__);
|
|
4613
4623
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4624
|
+
/* harmony export */ "ApiScanDatasetQaState": () => (/* binding */ ApiScanDatasetQaState),
|
|
4614
4625
|
/* harmony export */ "ApiScanDataset": () => (/* binding */ ApiScanDataset),
|
|
4615
4626
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
4616
4627
|
/* harmony export */ });
|
|
@@ -4623,9 +4634,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4623
4634
|
|
|
4624
4635
|
|
|
4625
4636
|
|
|
4637
|
+
var ApiScanDatasetQaState;
|
|
4638
|
+
(function (ApiScanDatasetQaState) {
|
|
4639
|
+
ApiScanDatasetQaState["NOT_STARTED"] = "NOT_STARTED";
|
|
4640
|
+
ApiScanDatasetQaState["STARTED"] = "STARTED";
|
|
4641
|
+
ApiScanDatasetQaState["COMPLETED"] = "COMPLETED";
|
|
4642
|
+
})(ApiScanDatasetQaState || (ApiScanDatasetQaState = {}));
|
|
4626
4643
|
var ApiScanDataset = /** @class */ (function () {
|
|
4627
4644
|
function ApiScanDataset(_a) {
|
|
4628
|
-
var id = _a.id, firebaseId = _a.firebaseId, firebaseFloorId = _a.firebaseFloorId, scanNumber = _a.scanNumber, dataPresences = _a.dataPresences, analysisCompleted = _a.analysisCompleted, manualQcPresent = _a.manualQcPresent, notes = _a.notes, name = _a.name, coarseAlignmentMatrix = _a.coarseAlignmentMatrix, fineAlignmentMatrix = _a.fineAlignmentMatrix, scanDate = _a.scanDate, scanDateString = _a.scanDateString, qaStarted = _a.qaStarted, qaComplete = _a.qaComplete;
|
|
4645
|
+
var id = _a.id, firebaseId = _a.firebaseId, firebaseFloorId = _a.firebaseFloorId, scanNumber = _a.scanNumber, dataPresences = _a.dataPresences, analysisCompleted = _a.analysisCompleted, manualQcPresent = _a.manualQcPresent, notes = _a.notes, name = _a.name, coarseAlignmentMatrix = _a.coarseAlignmentMatrix, fineAlignmentMatrix = _a.fineAlignmentMatrix, scanDate = _a.scanDate, scanDateString = _a.scanDateString, qaStarted = _a.qaStarted, qaComplete = _a.qaComplete, qaState = _a.qaState;
|
|
4629
4646
|
/**
|
|
4630
4647
|
* Date that the dataset was captured.
|
|
4631
4648
|
*/
|
|
@@ -4638,8 +4655,13 @@ var ApiScanDataset = /** @class */ (function () {
|
|
|
4638
4655
|
this.fineAlignmentMatrix = null;
|
|
4639
4656
|
this.notes = null;
|
|
4640
4657
|
this.name = null;
|
|
4641
|
-
this.qaComplete = null;
|
|
4642
4658
|
this.qaStarted = null;
|
|
4659
|
+
this.qaComplete = null;
|
|
4660
|
+
/**
|
|
4661
|
+
* current QA/QC state based on qaStarted/qaComplete, calculated by the
|
|
4662
|
+
* gateway so the frontend doesn't need to replicate business logic
|
|
4663
|
+
*/
|
|
4664
|
+
this.qaState = null;
|
|
4643
4665
|
(0,_mixins_add_instant_getter_and_setter_to_api_model__WEBPACK_IMPORTED_MODULE_1__["default"])(this, "scanDate");
|
|
4644
4666
|
(0,_mixins_add_read_only_properties_to_model__WEBPACK_IMPORTED_MODULE_3__["default"])(this, { id: id, firebaseId: firebaseId, firebaseFloorId: firebaseFloorId, scanNumber: scanNumber });
|
|
4645
4667
|
var coarseAlignmentMatrixVal, fineAlignmentMatrixVal;
|
|
@@ -4693,8 +4715,9 @@ var ApiScanDataset = /** @class */ (function () {
|
|
|
4693
4715
|
this.scanDateString = scanDateString;
|
|
4694
4716
|
this.analysisCompleted = analysisCompleted;
|
|
4695
4717
|
this.manualQcPresent = manualQcPresent;
|
|
4696
|
-
this.qaComplete = qaComplete;
|
|
4697
4718
|
this.qaStarted = qaStarted;
|
|
4719
|
+
this.qaComplete = qaComplete;
|
|
4720
|
+
this.qaState = qaState;
|
|
4698
4721
|
}
|
|
4699
4722
|
return ApiScanDataset;
|
|
4700
4723
|
}());
|
|
@@ -12,4 +12,5 @@ export default class RecipeApi {
|
|
|
12
12
|
static createProjectRecipe({ projectId }: AssociationIds, apiRecipe: ApiRecipe, user: User): Promise<ApiRecipe>;
|
|
13
13
|
static updateProjectRecipe({ projectId, recipeId }: AssociationIds, apiRecipe: ApiRecipe, user: User): Promise<ApiRecipe>;
|
|
14
14
|
static deleteProjectRecipe({ projectId, recipeId }: AssociationIds, user: User): Promise<void>;
|
|
15
|
+
static deleteProjectRecipeStep({ projectId, recipeId, recipeStepId }: AssociationIds, user: User): Promise<ApiRecipe>;
|
|
15
16
|
}
|
|
@@ -41,6 +41,10 @@ export default class RecipeApi {
|
|
|
41
41
|
let url = `${Http.baseUrl()}/projects/${projectId}/recipes/${recipeId}`;
|
|
42
42
|
return Http.delete(url, user);
|
|
43
43
|
}
|
|
44
|
+
static deleteProjectRecipeStep({ projectId, recipeId, recipeStepId }, user) {
|
|
45
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/recipes/${recipeId}/steps/${recipeStepId}`;
|
|
46
|
+
return Http.delete(url, user);
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
49
|
makeErrorsPretty(RecipeApi);
|
|
46
50
|
//# sourceMappingURL=recipe_api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe_api.js","sourceRoot":"","sources":["../../../source/api/recipe_api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipe_api.js","sourceRoot":"","sources":["../../../source/api/recipe_api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { User } from "../utilities/get_authorization_headers";
|
|
2
2
|
import { ApiBuiltStatus, ApiDetailedElement, ApiPhotoSession, ApiScanDataset, ApiScannedElementType, AssociationIds, DateLike } from "../models";
|
|
3
3
|
import ApiView, { ViewParameter } from "../models/api/api_view";
|
|
4
|
+
import { ApiScanDatasetQaState } from "../models/api/api_scan_dataset";
|
|
4
5
|
export default class ScanDatasetApi {
|
|
5
6
|
static listScanDatasetsForFloor({ projectId, floorId }: AssociationIds, user: User): Promise<ApiScanDataset[]>;
|
|
6
7
|
static mergeScanDataset({ projectId, floorId, scanDatasetId }: AssociationIds, scanDataset: ApiScanDataset, user: User): Promise<void>;
|
|
@@ -23,4 +24,5 @@ export default class ScanDatasetApi {
|
|
|
23
24
|
static getNewElementsForScanDataset({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise<string[]>;
|
|
24
25
|
static getOrCreatePhotoSession({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise<ApiPhotoSession>;
|
|
25
26
|
static updatePhotoSession({ projectId, floorId, scanDatasetId }: AssociationIds, { id, photoAreaId, sessionDate }: ApiPhotoSession, user: User): Promise<ApiPhotoSession>;
|
|
27
|
+
static updateQaState({ projectId, floorId, scanDatasetId }: AssociationIds, qaState: ApiScanDatasetQaState, user: User): Promise<ApiPhotoSession>;
|
|
26
28
|
}
|
|
@@ -71,6 +71,10 @@ export default class ScanDatasetApi {
|
|
|
71
71
|
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets/${scanDatasetId}/photo-session/${id}`;
|
|
72
72
|
return Http.post(url, user, { sessionDate });
|
|
73
73
|
}
|
|
74
|
+
static updateQaState({ projectId, floorId, scanDatasetId }, qaState, user) {
|
|
75
|
+
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets/${scanDatasetId}/qa-state`;
|
|
76
|
+
return Http.post(url, user, qaState);
|
|
77
|
+
}
|
|
74
78
|
}
|
|
75
79
|
makeErrorsPretty(ScanDatasetApi);
|
|
76
80
|
//# sourceMappingURL=scan_dataset_api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan_dataset_api.js","sourceRoot":"","sources":["../../../source/api/scan_dataset_api.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"scan_dataset_api.js","sourceRoot":"","sources":["../../../source/api/scan_dataset_api.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,13 @@ export interface ApiScanDatasetArgument extends Partial<Modify<ApiScanDataset, {
|
|
|
8
8
|
scanDateString?: string;
|
|
9
9
|
}>> {
|
|
10
10
|
}
|
|
11
|
+
export declare enum ApiScanDatasetQaState {
|
|
12
|
+
NOT_STARTED = "NOT_STARTED",
|
|
13
|
+
STARTED = "STARTED",
|
|
14
|
+
COMPLETED = "COMPLETED"
|
|
15
|
+
}
|
|
11
16
|
export declare class ApiScanDataset {
|
|
12
|
-
constructor({ id, firebaseId, firebaseFloorId, scanNumber, dataPresences, analysisCompleted, manualQcPresent, notes, name, coarseAlignmentMatrix, fineAlignmentMatrix, scanDate, scanDateString, qaStarted, qaComplete }: ApiScanDatasetArgument);
|
|
17
|
+
constructor({ id, firebaseId, firebaseFloorId, scanNumber, dataPresences, analysisCompleted, manualQcPresent, notes, name, coarseAlignmentMatrix, fineAlignmentMatrix, scanDate, scanDateString, qaStarted, qaComplete, qaState, }: ApiScanDatasetArgument);
|
|
13
18
|
/**
|
|
14
19
|
* Internal identifier, not used in URLs.
|
|
15
20
|
*/
|
|
@@ -43,7 +48,12 @@ export declare class ApiScanDataset {
|
|
|
43
48
|
};
|
|
44
49
|
notes: string | null;
|
|
45
50
|
name: string | null;
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
readonly qaStarted: Date | null;
|
|
52
|
+
readonly qaComplete: Date | null;
|
|
53
|
+
/**
|
|
54
|
+
* current QA/QC state based on qaStarted/qaComplete, calculated by the
|
|
55
|
+
* gateway so the frontend doesn't need to replicate business logic
|
|
56
|
+
*/
|
|
57
|
+
readonly qaState: ApiScanDatasetQaState;
|
|
48
58
|
}
|
|
49
59
|
export default ApiScanDataset;
|
|
@@ -2,8 +2,14 @@ import { Matrix4 } from "three";
|
|
|
2
2
|
import addInstantGetterAndSetterToApiModel from "../../mixins/add_instant_getter_and_setter_to_api_model";
|
|
3
3
|
import addReadOnlyPropertiesToModel from "../../mixins/add_read_only_properties_to_model";
|
|
4
4
|
import Matrix4Converter from "../../converters/matrix_4_converter";
|
|
5
|
+
export var ApiScanDatasetQaState;
|
|
6
|
+
(function (ApiScanDatasetQaState) {
|
|
7
|
+
ApiScanDatasetQaState["NOT_STARTED"] = "NOT_STARTED";
|
|
8
|
+
ApiScanDatasetQaState["STARTED"] = "STARTED";
|
|
9
|
+
ApiScanDatasetQaState["COMPLETED"] = "COMPLETED";
|
|
10
|
+
})(ApiScanDatasetQaState || (ApiScanDatasetQaState = {}));
|
|
5
11
|
export class ApiScanDataset {
|
|
6
|
-
constructor({ id, firebaseId, firebaseFloorId, scanNumber, dataPresences, analysisCompleted, manualQcPresent, notes, name, coarseAlignmentMatrix, fineAlignmentMatrix, scanDate, scanDateString, qaStarted, qaComplete }) {
|
|
12
|
+
constructor({ id, firebaseId, firebaseFloorId, scanNumber, dataPresences, analysisCompleted, manualQcPresent, notes, name, coarseAlignmentMatrix, fineAlignmentMatrix, scanDate, scanDateString, qaStarted, qaComplete, qaState, }) {
|
|
7
13
|
/**
|
|
8
14
|
* Date that the dataset was captured.
|
|
9
15
|
*/
|
|
@@ -16,8 +22,13 @@ export class ApiScanDataset {
|
|
|
16
22
|
this.fineAlignmentMatrix = null;
|
|
17
23
|
this.notes = null;
|
|
18
24
|
this.name = null;
|
|
19
|
-
this.qaComplete = null;
|
|
20
25
|
this.qaStarted = null;
|
|
26
|
+
this.qaComplete = null;
|
|
27
|
+
/**
|
|
28
|
+
* current QA/QC state based on qaStarted/qaComplete, calculated by the
|
|
29
|
+
* gateway so the frontend doesn't need to replicate business logic
|
|
30
|
+
*/
|
|
31
|
+
this.qaState = null;
|
|
21
32
|
addInstantGetterAndSetterToApiModel(this, "scanDate");
|
|
22
33
|
addReadOnlyPropertiesToModel(this, { id, firebaseId, firebaseFloorId, scanNumber });
|
|
23
34
|
let coarseAlignmentMatrixVal, fineAlignmentMatrixVal;
|
|
@@ -71,8 +82,9 @@ export class ApiScanDataset {
|
|
|
71
82
|
this.scanDateString = scanDateString;
|
|
72
83
|
this.analysisCompleted = analysisCompleted;
|
|
73
84
|
this.manualQcPresent = manualQcPresent;
|
|
74
|
-
this.qaComplete = qaComplete;
|
|
75
85
|
this.qaStarted = qaStarted;
|
|
86
|
+
this.qaComplete = qaComplete;
|
|
87
|
+
this.qaState = qaState;
|
|
76
88
|
}
|
|
77
89
|
}
|
|
78
90
|
export default ApiScanDataset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_scan_dataset.js","sourceRoot":"","sources":["../../../../source/models/api/api_scan_dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,mCAAmC,MAAM,yDAAyD,CAAC;AAC1G,OAAO,4BAA4B,MAAM,gDAAgD,CAAC;AAE1F,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AAUnE,MAAM,OAAO,cAAc;IACzB,YAAY,EACV,EAAE,EACF,UAAU,EACV,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,IAAI,EACJ,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,UAAU,
|
|
1
|
+
{"version":3,"file":"api_scan_dataset.js","sourceRoot":"","sources":["../../../../source/models/api/api_scan_dataset.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/source/api/recipe_api.ts
CHANGED
|
@@ -54,6 +54,11 @@ export default class RecipeApi {
|
|
|
54
54
|
let url = `${Http.baseUrl()}/projects/${projectId}/recipes/${recipeId}`;
|
|
55
55
|
return Http.delete(url, user) as unknown as Promise<void>;
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
static deleteProjectRecipeStep({projectId, recipeId, recipeStepId}: AssociationIds, user: User): Promise<ApiRecipe> {
|
|
59
|
+
let url = `${Http.baseUrl()}/projects/${projectId}/recipes/${recipeId}/steps/${recipeStepId}`;
|
|
60
|
+
return Http.delete(url, user) as unknown as Promise<ApiRecipe>;
|
|
61
|
+
}
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
makeErrorsPretty(RecipeApi);
|
|
@@ -4,6 +4,7 @@ import Http from "../utilities/http";
|
|
|
4
4
|
import makeErrorsPretty from "../utilities/make_errors_pretty";
|
|
5
5
|
import ApiView, { ViewParameter } from "../models/api/api_view";
|
|
6
6
|
import { DateConverter } from "../converters";
|
|
7
|
+
import {ApiScanDatasetQaState} from "../models/api/api_scan_dataset";
|
|
7
8
|
|
|
8
9
|
export default class ScanDatasetApi {
|
|
9
10
|
static listScanDatasetsForFloor({ projectId, floorId }: AssociationIds, user: User): Promise<ApiScanDataset[]> {
|
|
@@ -143,6 +144,18 @@ export default class ScanDatasetApi {
|
|
|
143
144
|
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets/${scanDatasetId}/photo-session/${id}`;
|
|
144
145
|
return Http.post(url, user, { sessionDate }) as unknown as Promise<ApiPhotoSession>;
|
|
145
146
|
}
|
|
147
|
+
|
|
148
|
+
static updateQaState({
|
|
149
|
+
projectId,
|
|
150
|
+
floorId,
|
|
151
|
+
scanDatasetId
|
|
152
|
+
}: AssociationIds,
|
|
153
|
+
qaState: ApiScanDatasetQaState,
|
|
154
|
+
user: User): Promise<ApiPhotoSession> {
|
|
155
|
+
|
|
156
|
+
const url = `${Http.baseUrl()}/projects/${projectId}/floors/${floorId}/scan-datasets/${scanDatasetId}/qa-state`;
|
|
157
|
+
return Http.post(url, user, qaState) as unknown as Promise<ApiPhotoSession>;
|
|
158
|
+
}
|
|
146
159
|
}
|
|
147
160
|
|
|
148
161
|
makeErrorsPretty(ScanDatasetApi);
|
|
@@ -12,6 +12,12 @@ export interface ApiScanDatasetArgument extends Partial<Modify<ApiScanDataset, {
|
|
|
12
12
|
scanDateString?: string,
|
|
13
13
|
}>> {}
|
|
14
14
|
|
|
15
|
+
export enum ApiScanDatasetQaState {
|
|
16
|
+
NOT_STARTED = "NOT_STARTED",
|
|
17
|
+
STARTED = "STARTED",
|
|
18
|
+
COMPLETED = "COMPLETED",
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
export class ApiScanDataset {
|
|
16
22
|
constructor({
|
|
17
23
|
id,
|
|
@@ -28,7 +34,8 @@ export class ApiScanDataset {
|
|
|
28
34
|
scanDate,
|
|
29
35
|
scanDateString,
|
|
30
36
|
qaStarted,
|
|
31
|
-
qaComplete
|
|
37
|
+
qaComplete,
|
|
38
|
+
qaState,
|
|
32
39
|
}: ApiScanDatasetArgument) {
|
|
33
40
|
addInstantGetterAndSetterToApiModel(this, "scanDate");
|
|
34
41
|
addReadOnlyPropertiesToModel(this, { id, firebaseId, firebaseFloorId, scanNumber });
|
|
@@ -79,8 +86,9 @@ export class ApiScanDataset {
|
|
|
79
86
|
this.scanDateString = scanDateString;
|
|
80
87
|
this.analysisCompleted = analysisCompleted;
|
|
81
88
|
this.manualQcPresent = manualQcPresent;
|
|
82
|
-
this.qaComplete = qaComplete;
|
|
83
89
|
this.qaStarted = qaStarted;
|
|
90
|
+
this.qaComplete = qaComplete;
|
|
91
|
+
this.qaState = qaState;
|
|
84
92
|
}
|
|
85
93
|
|
|
86
94
|
/**
|
|
@@ -119,8 +127,13 @@ export class ApiScanDataset {
|
|
|
119
127
|
dataPresences?: { scanAnalysis?: boolean };
|
|
120
128
|
notes: string | null = null;
|
|
121
129
|
name: string | null = null;
|
|
122
|
-
|
|
123
|
-
|
|
130
|
+
readonly qaStarted: Date | null = null;
|
|
131
|
+
readonly qaComplete: Date | null = null;
|
|
132
|
+
/**
|
|
133
|
+
* current QA/QC state based on qaStarted/qaComplete, calculated by the
|
|
134
|
+
* gateway so the frontend doesn't need to replicate business logic
|
|
135
|
+
*/
|
|
136
|
+
readonly qaState: ApiScanDatasetQaState = null;
|
|
124
137
|
}
|
|
125
138
|
|
|
126
139
|
export default ApiScanDataset;
|