tabletcommand-backend-models 7.4.111 → 7.4.113
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/build/constants.js +6 -1
- package/build/constants.js.map +1 -1
- package/build/index.js +6 -1
- package/build/index.js.map +1 -1
- package/build/models/data-sharing-agreement.js +161 -0
- package/build/models/data-sharing-agreement.js.map +1 -0
- package/build/models/department.js +17 -1
- package/build/models/department.js.map +1 -1
- package/build/models/drone-connection.js +101 -0
- package/build/models/drone-connection.js.map +1 -0
- package/build/models/user.js +4 -0
- package/build/models/user.js.map +1 -1
- package/build/test/0index.js +1 -0
- package/build/test/0index.js.map +1 -1
- package/build/test/data-sharing-agreement.js +220 -0
- package/build/test/data-sharing-agreement.js.map +1 -0
- package/build/test/department.js +5 -0
- package/build/test/department.js.map +1 -1
- package/build/test/drone-connection.js +152 -0
- package/build/test/drone-connection.js.map +1 -0
- package/build/test/mock.js +22 -0
- package/build/test/mock.js.map +1 -1
- package/build/test/user.js +10 -0
- package/build/test/user.js.map +1 -1
- package/build/types/data-sharing-agreement.js +8 -0
- package/build/types/data-sharing-agreement.js.map +1 -0
- package/build/types/drone-connection.js +3 -0
- package/build/types/drone-connection.js.map +1 -0
- package/cspell.json +1 -0
- package/definitions/constants.d.ts +4 -0
- package/definitions/constants.d.ts.map +1 -1
- package/definitions/index.d.ts +17 -2
- package/definitions/index.d.ts.map +1 -1
- package/definitions/models/data-sharing-agreement.d.ts +13 -0
- package/definitions/models/data-sharing-agreement.d.ts.map +1 -0
- package/definitions/models/department.d.ts +3 -0
- package/definitions/models/department.d.ts.map +1 -1
- package/definitions/models/drone-connection.d.ts +22 -0
- package/definitions/models/drone-connection.d.ts.map +1 -0
- package/definitions/models/user.d.ts.map +1 -1
- package/definitions/test/data-sharing-agreement.d.ts +2 -0
- package/definitions/test/data-sharing-agreement.d.ts.map +1 -0
- package/definitions/test/drone-connection.d.ts +2 -0
- package/definitions/test/drone-connection.d.ts.map +1 -0
- package/definitions/test/mock.d.ts +22 -0
- package/definitions/test/mock.d.ts.map +1 -1
- package/definitions/types/data-sharing-agreement.d.ts +30 -0
- package/definitions/types/data-sharing-agreement.d.ts.map +1 -0
- package/definitions/types/department.d.ts +4 -0
- package/definitions/types/department.d.ts.map +1 -1
- package/definitions/types/drone-connection.d.ts +19 -0
- package/definitions/types/drone-connection.d.ts.map +1 -0
- package/definitions/types/user.d.ts +1 -0
- package/definitions/types/user.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +5 -0
- package/src/index.ts +16 -0
- package/src/models/data-sharing-agreement.ts +182 -0
- package/src/models/department.ts +19 -0
- package/src/models/drone-connection.ts +121 -0
- package/src/models/user.ts +4 -0
- package/src/test/0index.ts +1 -0
- package/src/test/data-sharing-agreement.ts +238 -0
- package/src/test/department.ts +6 -0
- package/src/test/drone-connection.ts +164 -0
- package/src/test/mock.ts +23 -0
- package/src/test/user.ts +11 -0
- package/src/types/data-sharing-agreement.ts +49 -0
- package/src/types/department.ts +5 -0
- package/src/types/drone-connection.ts +21 -0
- package/src/types/user.ts +1 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Types } from "mongoose";
|
|
2
|
+
import { DroneProvider } from "../constants";
|
|
3
|
+
import { EncryptedDataType } from "./common";
|
|
4
|
+
export interface DroneConnectionOptionsType {
|
|
5
|
+
drones: "all" | "listed";
|
|
6
|
+
serials: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface DroneConnectionType {
|
|
9
|
+
_id: Types.ObjectId;
|
|
10
|
+
departmentId: Types.ObjectId;
|
|
11
|
+
provider: DroneProvider;
|
|
12
|
+
active: boolean;
|
|
13
|
+
label: string;
|
|
14
|
+
authToken: EncryptedDataType;
|
|
15
|
+
authSecret: EncryptedDataType;
|
|
16
|
+
options?: DroneConnectionOptionsType;
|
|
17
|
+
modified: Date;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=drone-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drone-connection.d.ts","sourceRoot":"","sources":["../../src/types/drone-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAElC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,QAAQ,EAAE,IAAI,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
|
@@ -10,6 +10,7 @@ export enum LocationSource {
|
|
|
10
10
|
MotorolaConverged = "MotorolaConverged",
|
|
11
11
|
OneStep = "OneStep",
|
|
12
12
|
Samsara = "Samsara",
|
|
13
|
+
Skydio = "Skydio",
|
|
13
14
|
Skymira = "Skymira",
|
|
14
15
|
SKYTRAC = "SKYTRAC",
|
|
15
16
|
Somewear = "Somewear",
|
|
@@ -22,6 +23,10 @@ export enum LocationSource {
|
|
|
22
23
|
VehicleModem = "VehicleModem"
|
|
23
24
|
}
|
|
24
25
|
|
|
26
|
+
export enum DroneProvider {
|
|
27
|
+
Skydio = "skydio"
|
|
28
|
+
}
|
|
29
|
+
|
|
25
30
|
export enum LocationKindType {
|
|
26
31
|
FixedWing = "fixed-wing",
|
|
27
32
|
Helicopter = "helicopter",
|
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ export {
|
|
|
6
6
|
AccountCallerType,
|
|
7
7
|
AccountIndustry,
|
|
8
8
|
DepartmentReportOdometer,
|
|
9
|
+
DroneProvider,
|
|
9
10
|
FireMapperLayers,
|
|
10
11
|
IncidentFilterKind,
|
|
11
12
|
LocationKindType,
|
|
@@ -50,8 +51,10 @@ async function wireModels(mongoose: MongooseModule) {
|
|
|
50
51
|
ChecklistItem: await getModel(import("./models/checklist-item")),
|
|
51
52
|
CSVImport: await getModel(import("./models/csv-import")),
|
|
52
53
|
AudioStreamAuthentication: await getModel(import("./models/audio-stream-authentication")),
|
|
54
|
+
DataSharingAgreement: await getModel(import("./models/data-sharing-agreement")),
|
|
53
55
|
Department: await getModel(import("./models/department")),
|
|
54
56
|
DeviceMapping: await getModel(import("./models/device-mapping")),
|
|
57
|
+
DroneConnection: await getModel(import("./models/drone-connection")),
|
|
55
58
|
Esri: await getModel(import("./models/esri")),
|
|
56
59
|
GSTMapping: await getModel(import("./models/gst-mapping")),
|
|
57
60
|
GlobalSettings: await getModel(import("./models/global-settings")),
|
|
@@ -118,8 +121,10 @@ export { Checklist, ChecklistModel } from "./models/checklist";
|
|
|
118
121
|
export { ChecklistItem, ChecklistItemModel } from "./models/checklist-item";
|
|
119
122
|
export { CSVImport, CSVImportModel } from "./models/csv-import";
|
|
120
123
|
export { AudioStreamAuthentication, AudioStreamAuthenticationModel } from "./models/audio-stream-authentication";
|
|
124
|
+
export { DataSharingAgreement, DataSharingAgreementModel } from "./models/data-sharing-agreement";
|
|
121
125
|
export { Department, DepartmentModel } from "./models/department";
|
|
122
126
|
export { DeviceMapping, DeviceMappingModel } from "./models/device-mapping";
|
|
127
|
+
export { DroneConnection, DroneConnectionModel } from "./models/drone-connection";
|
|
123
128
|
export { Esri, EsriModel } from "./models/esri";
|
|
124
129
|
export { GSTMapping, GSTMappingModel } from "./models/gst-mapping";
|
|
125
130
|
export { GlobalSettings, GlobalSettingsModel } from "./models/global-settings";
|
|
@@ -161,19 +166,30 @@ export { WatchDutyEvent, WatchDutyEventModel } from "./models/watchduty-event";
|
|
|
161
166
|
|
|
162
167
|
export * from "./helpers";
|
|
163
168
|
export { IntegrationTypes } from "./types/department";
|
|
169
|
+
export { DataSharingAgreementActions } from "./types/data-sharing-agreement";
|
|
164
170
|
|
|
165
171
|
export * from "./checklist-item-event-message";
|
|
166
172
|
|
|
167
173
|
// Export types
|
|
168
174
|
export type {
|
|
175
|
+
DronesConfigurationType,
|
|
169
176
|
ForwardingConnectionType,
|
|
170
177
|
ForwardingConfigType,
|
|
171
178
|
ForwardFieldsType,
|
|
172
179
|
IntegrationType,
|
|
173
180
|
} from "./types/department";
|
|
181
|
+
export type {
|
|
182
|
+
DroneConnectionOptionsType,
|
|
183
|
+
DroneConnectionType,
|
|
184
|
+
} from "./types/drone-connection";
|
|
174
185
|
export type {
|
|
175
186
|
CADInterfaceMetaDataType,
|
|
176
187
|
} from "./types/cad-interface-meta-data";
|
|
188
|
+
export type {
|
|
189
|
+
DataSharingAgreementAction,
|
|
190
|
+
DataSharingAgreementType,
|
|
191
|
+
DataSharingVendorConsentType,
|
|
192
|
+
} from "./types/data-sharing-agreement";
|
|
177
193
|
|
|
178
194
|
// Export default vars
|
|
179
195
|
export {
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Model } from "mongoose";
|
|
2
|
+
import * as uuid from "uuid";
|
|
3
|
+
import { mongooseLeanVirtuals } from "mongoose-lean-virtuals";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
currentDate,
|
|
7
|
+
MongooseModule,
|
|
8
|
+
} from "../helpers";
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
DataSharingAgreementActions,
|
|
12
|
+
DataSharingAgreementType,
|
|
13
|
+
DataSharingVendorConsentType,
|
|
14
|
+
} from "../types/data-sharing-agreement";
|
|
15
|
+
|
|
16
|
+
export interface DataSharingAgreement extends DataSharingAgreementType, Record<string, unknown> { }
|
|
17
|
+
|
|
18
|
+
// Append-only legal record of data sharing sign-offs. Every signature, change and
|
|
19
|
+
// revocation inserts a new document; the collection IS the revision history.
|
|
20
|
+
//
|
|
21
|
+
// - No TTL index: records must never auto-purge. Removal only happens on a verified
|
|
22
|
+
// legal request, as a manual engineer-run operation never via an API.
|
|
23
|
+
// - Record fields are `immutable` so a loaded document cannot be re-saved with
|
|
24
|
+
// different content. This gives us a static timeline of events as they happen
|
|
25
|
+
export default async function DataSharingAgreementModule(mongoose: MongooseModule) {
|
|
26
|
+
const { Schema } = mongoose;
|
|
27
|
+
|
|
28
|
+
const DataSharingVendorConsent = new Schema<DataSharingVendorConsentType>({
|
|
29
|
+
key: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
label: {
|
|
34
|
+
type: String,
|
|
35
|
+
default: "",
|
|
36
|
+
},
|
|
37
|
+
checked: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: false,
|
|
40
|
+
},
|
|
41
|
+
}, {
|
|
42
|
+
_id: false,
|
|
43
|
+
id: false,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const modelSchema = new Schema<DataSharingAgreement>({
|
|
47
|
+
_id: {
|
|
48
|
+
type: Schema.Types.ObjectId,
|
|
49
|
+
auto: true,
|
|
50
|
+
},
|
|
51
|
+
uuid: {
|
|
52
|
+
type: String,
|
|
53
|
+
required: true,
|
|
54
|
+
default: uuid.v4,
|
|
55
|
+
immutable: true,
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// Who / where
|
|
59
|
+
departmentId: {
|
|
60
|
+
type: String,
|
|
61
|
+
required: true,
|
|
62
|
+
immutable: true,
|
|
63
|
+
},
|
|
64
|
+
// Department.department at signing time (Using the value and not id on purpose)
|
|
65
|
+
departmentName: {
|
|
66
|
+
type: String,
|
|
67
|
+
default: "",
|
|
68
|
+
immutable: true,
|
|
69
|
+
},
|
|
70
|
+
// Unset for account-wide signatures
|
|
71
|
+
agencyId: {
|
|
72
|
+
type: Schema.Types.ObjectId,
|
|
73
|
+
ref: "Agency",
|
|
74
|
+
default: null,
|
|
75
|
+
immutable: true,
|
|
76
|
+
},
|
|
77
|
+
agencyName: {
|
|
78
|
+
type: String,
|
|
79
|
+
default: "",
|
|
80
|
+
immutable: true,
|
|
81
|
+
},
|
|
82
|
+
userId: {
|
|
83
|
+
type: String,
|
|
84
|
+
required: true,
|
|
85
|
+
immutable: true,
|
|
86
|
+
},
|
|
87
|
+
email: {
|
|
88
|
+
type: String,
|
|
89
|
+
required: true,
|
|
90
|
+
immutable: true,
|
|
91
|
+
},
|
|
92
|
+
// User.name at signing time
|
|
93
|
+
signerName: {
|
|
94
|
+
type: String,
|
|
95
|
+
default: "",
|
|
96
|
+
immutable: true,
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
// What they signed
|
|
100
|
+
agreementTitle: {
|
|
101
|
+
type: String,
|
|
102
|
+
required: true,
|
|
103
|
+
immutable: true,
|
|
104
|
+
},
|
|
105
|
+
// Versioned in service code and rolled out with deploys
|
|
106
|
+
agreementVersion: {
|
|
107
|
+
type: String,
|
|
108
|
+
required: true,
|
|
109
|
+
immutable: true,
|
|
110
|
+
},
|
|
111
|
+
// FULL text as displayed to the signer, stored verbatim, never a reference
|
|
112
|
+
agreementText: {
|
|
113
|
+
type: String,
|
|
114
|
+
required: true,
|
|
115
|
+
immutable: true,
|
|
116
|
+
},
|
|
117
|
+
action: {
|
|
118
|
+
type: String,
|
|
119
|
+
enum: DataSharingAgreementActions,
|
|
120
|
+
required: true,
|
|
121
|
+
immutable: true,
|
|
122
|
+
},
|
|
123
|
+
// Full checkbox state after this action
|
|
124
|
+
consents: {
|
|
125
|
+
type: [DataSharingVendorConsent],
|
|
126
|
+
default: [],
|
|
127
|
+
immutable: true,
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
// Evidence
|
|
131
|
+
remoteAddress: {
|
|
132
|
+
type: String,
|
|
133
|
+
default: "",
|
|
134
|
+
immutable: true,
|
|
135
|
+
},
|
|
136
|
+
userAgent: {
|
|
137
|
+
type: String,
|
|
138
|
+
default: "",
|
|
139
|
+
immutable: true,
|
|
140
|
+
},
|
|
141
|
+
appVersion: {
|
|
142
|
+
type: String,
|
|
143
|
+
default: "",
|
|
144
|
+
immutable: true,
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
// Signing timestamp, server-side
|
|
148
|
+
createdAt: {
|
|
149
|
+
type: Date,
|
|
150
|
+
default: currentDate,
|
|
151
|
+
immutable: true,
|
|
152
|
+
},
|
|
153
|
+
modified: {
|
|
154
|
+
type: Date,
|
|
155
|
+
default: currentDate,
|
|
156
|
+
},
|
|
157
|
+
}, {
|
|
158
|
+
autoIndex: false,
|
|
159
|
+
toJSON: {
|
|
160
|
+
virtuals: true,
|
|
161
|
+
versionKey: false,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// History (newest first) and "latest record" lookups per account
|
|
166
|
+
modelSchema.index({
|
|
167
|
+
departmentId: 1,
|
|
168
|
+
createdAt: -1,
|
|
169
|
+
}, {
|
|
170
|
+
name: "departmentId_1_createdAt_-1",
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
modelSchema.virtual("id").get(function(this: DataSharingAgreement) {
|
|
174
|
+
return this._id.toHexString();
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
modelSchema.plugin(mongooseLeanVirtuals);
|
|
178
|
+
|
|
179
|
+
return mongoose.model<DataSharingAgreement>("DataSharingAgreement", modelSchema, "massive_data_sharing_agreement", { overwriteModels: true });
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface DataSharingAgreementModel extends Model<DataSharingAgreement> { }
|
package/src/models/department.ts
CHANGED
|
@@ -79,6 +79,7 @@ import {
|
|
|
79
79
|
UnitStatusCodesConfigType,
|
|
80
80
|
OneStepConfigurationType,
|
|
81
81
|
DroneSenseConfigurationType,
|
|
82
|
+
DronesConfigurationType,
|
|
82
83
|
USFTConfigurationType,
|
|
83
84
|
VehicleStatusWebhookConfigType,
|
|
84
85
|
VehicleStatusWebhookConnectionType,
|
|
@@ -547,6 +548,10 @@ export const DroneSenseConfigurationDefault = {
|
|
|
547
548
|
apiKey: "",
|
|
548
549
|
};
|
|
549
550
|
|
|
551
|
+
export const DronesConfigurationDefault = {
|
|
552
|
+
enabled: false,
|
|
553
|
+
};
|
|
554
|
+
|
|
550
555
|
export const OrientationMarkerColorDefault: ColorSchemaType = {
|
|
551
556
|
background: "#FC2125",
|
|
552
557
|
text: "#FFFFFF",
|
|
@@ -1529,6 +1534,16 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
|
1529
1534
|
id: false,
|
|
1530
1535
|
});
|
|
1531
1536
|
|
|
1537
|
+
const DronesConfiguration = new Schema<DronesConfigurationType>({
|
|
1538
|
+
enabled: {
|
|
1539
|
+
type: Boolean,
|
|
1540
|
+
default: false,
|
|
1541
|
+
},
|
|
1542
|
+
}, {
|
|
1543
|
+
_id: false,
|
|
1544
|
+
id: false,
|
|
1545
|
+
});
|
|
1546
|
+
|
|
1532
1547
|
const FireMapperConfiguration = new Schema<FireMapperConfigurationType>({
|
|
1533
1548
|
enabled: {
|
|
1534
1549
|
type: Boolean,
|
|
@@ -2410,6 +2425,10 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
|
2410
2425
|
type: DroneSenseConfiguration,
|
|
2411
2426
|
default: DroneSenseConfigurationDefault,
|
|
2412
2427
|
},
|
|
2428
|
+
drones: {
|
|
2429
|
+
type: DronesConfiguration,
|
|
2430
|
+
default: DronesConfigurationDefault,
|
|
2431
|
+
},
|
|
2413
2432
|
mark43: {
|
|
2414
2433
|
type: Mark43Config,
|
|
2415
2434
|
default: Mark43ConfigDefault
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Model } from "mongoose";
|
|
2
|
+
|
|
3
|
+
import { DroneProvider } from "../constants";
|
|
4
|
+
import {
|
|
5
|
+
currentDate,
|
|
6
|
+
MongooseModule,
|
|
7
|
+
} from "../helpers";
|
|
8
|
+
import { EncryptedDataType } from "../types/common";
|
|
9
|
+
import {
|
|
10
|
+
DroneConnectionOptionsType,
|
|
11
|
+
DroneConnectionType,
|
|
12
|
+
} from "../types/drone-connection";
|
|
13
|
+
|
|
14
|
+
export interface DroneConnection extends DroneConnectionType, Record<string, unknown> {
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const EncryptedDataDefault: EncryptedDataType = {
|
|
18
|
+
iv: "",
|
|
19
|
+
encryptedData: "",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export function DroneConnectionSchema(mongoose: MongooseModule) {
|
|
23
|
+
const { Schema } = mongoose;
|
|
24
|
+
|
|
25
|
+
const EncryptedData = new Schema<EncryptedDataType>({
|
|
26
|
+
iv: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: "",
|
|
29
|
+
},
|
|
30
|
+
encryptedData: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: "",
|
|
33
|
+
},
|
|
34
|
+
}, {
|
|
35
|
+
_id: false,
|
|
36
|
+
id: false,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const DroneConnectionOptions = new Schema<DroneConnectionOptionsType>({
|
|
40
|
+
drones: {
|
|
41
|
+
type: String,
|
|
42
|
+
enum: ["all", "listed"],
|
|
43
|
+
default: "all",
|
|
44
|
+
},
|
|
45
|
+
serials: {
|
|
46
|
+
type: [String],
|
|
47
|
+
default: [],
|
|
48
|
+
},
|
|
49
|
+
}, {
|
|
50
|
+
_id: false,
|
|
51
|
+
id: false,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const modelSchema = new Schema<DroneConnectionType>({
|
|
55
|
+
departmentId: {
|
|
56
|
+
type: Schema.Types.ObjectId,
|
|
57
|
+
ref: "Department",
|
|
58
|
+
required: true,
|
|
59
|
+
},
|
|
60
|
+
provider: {
|
|
61
|
+
type: String,
|
|
62
|
+
enum: Object.values(DroneProvider),
|
|
63
|
+
required: true,
|
|
64
|
+
},
|
|
65
|
+
active: {
|
|
66
|
+
type: Boolean,
|
|
67
|
+
default: false,
|
|
68
|
+
},
|
|
69
|
+
label: {
|
|
70
|
+
type: String,
|
|
71
|
+
default: "",
|
|
72
|
+
},
|
|
73
|
+
authToken: {
|
|
74
|
+
type: EncryptedData,
|
|
75
|
+
default: EncryptedDataDefault,
|
|
76
|
+
},
|
|
77
|
+
authSecret: {
|
|
78
|
+
type: EncryptedData,
|
|
79
|
+
default: EncryptedDataDefault,
|
|
80
|
+
},
|
|
81
|
+
options: {
|
|
82
|
+
type: DroneConnectionOptions,
|
|
83
|
+
required: false,
|
|
84
|
+
},
|
|
85
|
+
modified: {
|
|
86
|
+
type: Date,
|
|
87
|
+
default: currentDate,
|
|
88
|
+
},
|
|
89
|
+
}, {
|
|
90
|
+
autoIndex: false,
|
|
91
|
+
timestamps: {
|
|
92
|
+
createdAt: false,
|
|
93
|
+
updatedAt: "modified",
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
modelSchema.index({
|
|
98
|
+
departmentId: 1,
|
|
99
|
+
}, {
|
|
100
|
+
name: "departmentId_1",
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
modelSchema.index({
|
|
104
|
+
departmentId: 1,
|
|
105
|
+
provider: 1,
|
|
106
|
+
label: 1,
|
|
107
|
+
}, {
|
|
108
|
+
name: "departmentId_1_provider_1_label_1_unique",
|
|
109
|
+
unique: true,
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
return modelSchema;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export default async function DroneConnectionModule(mongoose: MongooseModule) {
|
|
116
|
+
const modelSchema = DroneConnectionSchema(mongoose);
|
|
117
|
+
return mongoose.model<DroneConnection>("DroneConnection", modelSchema, "massive_drone_connection", { overwriteModels: true });
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface DroneConnectionModel extends Model<DroneConnection> {
|
|
121
|
+
}
|
package/src/models/user.ts
CHANGED
package/src/test/0index.ts
CHANGED
|
@@ -39,6 +39,7 @@ describe(" Models", function() {
|
|
|
39
39
|
assert.isFunction(models.Checklist, "Missing Checklist");
|
|
40
40
|
assert.isFunction(models.ChecklistItem, "Missing ChecklistItem");
|
|
41
41
|
assert.isFunction(models.CSVImport, "Missing CSVImport");
|
|
42
|
+
assert.isFunction(models.DataSharingAgreement, "Missing DataSharingAgreement");
|
|
42
43
|
assert.isFunction(models.Department, "Missing Department");
|
|
43
44
|
assert.isFunction(models.DeviceMapping, "Missing DeviceMapping");
|
|
44
45
|
assert.isFunction(models.Esri, "Missing Esri");
|