@fdm-monster/server 1.6.0-rc1 → 1.6.0-rc3
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/.gitattributes +2 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.1.0.cjs +893 -0
- package/.yarnrc.yml +4 -0
- package/README.md +1 -1
- package/dist/consoles/sqlite-torm.js +31 -0
- package/dist/consoles/sqlite-torm.js.map +1 -0
- package/dist/consoles/typeorm-generate.js +194 -0
- package/dist/consoles/typeorm-generate.js.map +1 -0
- package/dist/consoles/typeorm-migrate.js +48 -0
- package/dist/consoles/typeorm-migrate.js.map +1 -0
- package/dist/container.js +64 -19
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +2 -0
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +15 -5
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/dto/update-client-dist.dto.js +38 -0
- package/dist/controllers/dto/update-client-dist.dto.js.map +1 -0
- package/dist/controllers/printer-files.controller.js +2 -8
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +2 -1
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +25 -6
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +9 -0
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/data-source.js +66 -0
- package/dist/data-source.js.map +1 -0
- package/dist/entities/camera-stream.entity.js +94 -0
- package/dist/entities/camera-stream.entity.js.map +1 -0
- package/dist/entities/custom-gcode.entity.js +50 -0
- package/dist/entities/custom-gcode.entity.js.map +1 -0
- package/dist/entities/floor-position.entity.js +78 -0
- package/dist/entities/floor-position.entity.js.map +1 -0
- package/dist/entities/floor.entity.js +53 -0
- package/dist/entities/floor.entity.js.map +1 -0
- package/dist/entities/index.js +58 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/permission.entity.js +38 -0
- package/dist/entities/permission.entity.js.map +1 -0
- package/dist/entities/print-completion.entity.js +91 -0
- package/dist/entities/print-completion.entity.js.map +1 -0
- package/dist/entities/printer-file.entity.js +140 -0
- package/dist/entities/printer-file.entity.js.map +1 -0
- package/dist/entities/printer.entity.js +105 -0
- package/dist/entities/printer.entity.js.map +1 -0
- package/dist/entities/refresh-token.entity.js +70 -0
- package/dist/entities/refresh-token.entity.js.map +1 -0
- package/dist/entities/role.entity.js +46 -0
- package/dist/entities/role.entity.js.map +1 -0
- package/dist/entities/settings.entity.js +89 -0
- package/dist/entities/settings.entity.js.map +1 -0
- package/dist/entities/user-role.entity.js +70 -0
- package/dist/entities/user-role.entity.js.map +1 -0
- package/dist/entities/user.entity.js +90 -0
- package/dist/entities/user.entity.js.map +1 -0
- package/dist/middleware/exception.filter.js +2 -1
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/passport.js.map +1 -1
- package/dist/migrations/1706829146617-InitSqlite.js +670 -0
- package/dist/migrations/1706829146617-InitSqlite.js.map +1 -0
- package/dist/models/Floor.js.map +1 -1
- package/dist/models/PrinterFile.js +4 -0
- package/dist/models/PrinterFile.js.map +1 -1
- package/dist/server.constants.js +4 -2
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +10 -1
- package/dist/server.core.js.map +1 -1
- package/dist/server.host.js +11 -3
- package/dist/server.host.js.map +1 -1
- package/dist/services/batch-call.service.js +67 -20
- package/dist/services/batch-call.service.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +98 -27
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/github.service.js +18 -14
- package/dist/services/core/github.service.js.map +1 -1
- package/dist/services/core/task-manager.service.js +1 -1
- package/dist/services/core/task-manager.service.js.map +1 -1
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/floor.service.js +1 -1
- package/dist/services/floor.service.js.map +1 -1
- package/dist/services/interfaces/printer-file.dto.js +29 -3
- package/dist/services/interfaces/printer-file.dto.js.map +1 -1
- package/dist/services/octoprint/dto/connection-state.dto.js +0 -25
- package/dist/services/octoprint/dto/connection-state.dto.js.map +1 -1
- package/dist/services/octoprint/dto/connection.dto.js +6 -0
- package/dist/services/octoprint/dto/connection.dto.js.map +1 -0
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/models/octoprint-file.dto.js +6 -0
- package/dist/services/octoprint/models/octoprint-file.dto.js.map +1 -0
- package/dist/services/octoprint/octoprint-api.routes.js +9 -3
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-api.service.js +17 -2
- package/dist/services/octoprint/octoprint-api.service.js.map +1 -1
- package/dist/services/octoprint/octoprint-sockio.adapter.js +53 -45
- package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -1
- package/dist/services/octoprint/utils/file.utils.js +44 -0
- package/dist/services/octoprint/utils/file.utils.js.map +1 -0
- package/dist/services/orm/base.service.js +3 -0
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js +25 -0
- package/dist/services/orm/camera-stream.service.js.map +1 -0
- package/dist/services/orm/custom-gcode.service.js +42 -0
- package/dist/services/orm/custom-gcode.service.js.map +1 -0
- package/dist/services/orm/floor-position.service.js +55 -0
- package/dist/services/orm/floor-position.service.js.map +1 -0
- package/dist/services/orm/floor.service.js +122 -0
- package/dist/services/orm/floor.service.js.map +1 -0
- package/dist/services/orm/permission.service.js +77 -0
- package/dist/services/orm/permission.service.js.map +1 -0
- package/dist/services/orm/print-completion.service.js +90 -0
- package/dist/services/orm/print-completion.service.js.map +1 -0
- package/dist/services/orm/printer-files.service.js +123 -0
- package/dist/services/orm/printer-files.service.js.map +1 -0
- package/dist/services/orm/printer.service.js +145 -0
- package/dist/services/orm/printer.service.js.map +1 -0
- package/dist/services/orm/refresh-token.service.js +107 -0
- package/dist/services/orm/refresh-token.service.js.map +1 -0
- package/dist/services/orm/role.service.js +131 -0
- package/dist/services/orm/role.service.js.map +1 -0
- package/dist/services/orm/settings.service.js +208 -0
- package/dist/services/orm/settings.service.js.map +1 -0
- package/dist/services/orm/user-role.service.js +55 -0
- package/dist/services/orm/user-role.service.js.map +1 -0
- package/dist/services/orm/user.service.js +146 -0
- package/dist/services/orm/user.service.js.map +1 -0
- package/dist/services/orm-migration.service.js +20 -0
- package/dist/services/orm-migration.service.js.map +1 -0
- package/dist/services/printer-files.service.js +3 -0
- package/dist/services/printer-files.service.js.map +1 -1
- package/dist/services/typeorm/typeorm.service.js +48 -0
- package/dist/services/typeorm/typeorm.service.js.map +1 -0
- package/dist/state/file.cache.js +2 -9
- package/dist/state/file.cache.js.map +1 -1
- package/dist/state/printer-connection.cache.js +21 -0
- package/dist/state/printer-connection.cache.js.map +1 -0
- package/dist/state/printer-events.cache.js +16 -7
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-files.store.js +3 -4
- package/dist/state/printer-files.store.js.map +1 -1
- package/dist/state/printer-socket.store.js +3 -3
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer.cache.js +3 -0
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +3 -0
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +1 -1
- package/dist/task.presets.js.map +1 -1
- package/dist/tasks/boot.task.js +30 -18
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/print-completion.socketio.task.js +15 -1
- package/dist/tasks/print-completion.socketio.task.js.map +1 -1
- package/dist/tasks/printer-file-clean.task.js +14 -0
- package/dist/tasks/printer-file-clean.task.js.map +1 -1
- package/dist/tasks/printer-state-update-poll.task.js +89 -0
- package/dist/tasks/printer-state-update-poll.task.js.map +1 -0
- package/dist/tasks/printer-websocket-restore.task.js +4 -3
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
- package/dist/tasks/printer-websocket.task.js +1 -1
- package/dist/tasks/printer-websocket.task.js.map +1 -1
- package/dist/tasks/socketio.task.js +1 -1
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks.js +2 -1
- package/dist/tasks.js.map +1 -1
- package/dist/utils/semver.utils.js +19 -4
- package/dist/utils/semver.utils.js.map +1 -1
- package/package.json +31 -30
|
@@ -31,6 +31,7 @@ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
|
31
31
|
const _urlutils = require("../../utils/url.utils");
|
|
32
32
|
const _normalizeurl = require("../../utils/normalize-url");
|
|
33
33
|
const _websocketadapter = require("../../shared/websocket.adapter");
|
|
34
|
+
const _nodefs = require("node:fs");
|
|
34
35
|
const Message = {
|
|
35
36
|
connected: "connected",
|
|
36
37
|
reauthRequired: "reauthRequired",
|
|
@@ -132,6 +133,7 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
132
133
|
}));
|
|
133
134
|
}
|
|
134
135
|
async reauthSession() {
|
|
136
|
+
this.logger.log("Sending reauthSession");
|
|
135
137
|
await this.setupSocketSession();
|
|
136
138
|
await this.sendAuth();
|
|
137
139
|
this.resetReauthRequired();
|
|
@@ -140,42 +142,42 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
140
142
|
this.resetSocketState();
|
|
141
143
|
this.sessionDto = await this.octoPrintApiService.login(this.loginDto).then((r)=>{
|
|
142
144
|
if (r.name === "_api") {
|
|
143
|
-
this.setApiState(
|
|
144
|
-
this.setSocketState(
|
|
145
|
+
this.setApiState("globalKey");
|
|
146
|
+
this.setSocketState("aborted");
|
|
145
147
|
throw new _runtimeexceptions.ExternalServiceError("Global API Key detected, aborting socket connection");
|
|
146
148
|
} else if (r.needs?.group[0] === "guests") {
|
|
147
149
|
this.logger.warn("Detected group guests in OctoPrint login response, marking as unauthorized");
|
|
148
|
-
this.setApiState(
|
|
149
|
-
this.setSocketState(
|
|
150
|
+
this.setApiState("authFail");
|
|
151
|
+
this.setSocketState("aborted");
|
|
150
152
|
throw new _runtimeexceptions.ExternalServiceError("Guest group detected, authentication failed, aborting socket connection");
|
|
151
153
|
}
|
|
152
|
-
this.setApiState(
|
|
153
|
-
this.setSocketState(
|
|
154
|
+
this.setApiState("responding");
|
|
155
|
+
this.setSocketState("opening");
|
|
154
156
|
return r;
|
|
155
157
|
}).catch((e)=>{
|
|
156
|
-
this.setSocketState(
|
|
158
|
+
this.setSocketState("aborted");
|
|
157
159
|
if (e instanceof _runtimeexceptions.ExternalServiceError) {
|
|
158
160
|
this.logger.warn(`Printer authorization error (id: ${this.printerId}), apiState: ${this.apiState}`);
|
|
159
161
|
throw e;
|
|
160
162
|
} else {
|
|
161
163
|
if (e?.response?.status === 403) {
|
|
162
|
-
this.setApiState(
|
|
163
|
-
this.setSocketState(
|
|
164
|
+
this.setApiState("authFail");
|
|
165
|
+
this.setSocketState("aborted");
|
|
164
166
|
throw new _runtimeexceptions.ExternalServiceError(e);
|
|
165
167
|
}
|
|
166
168
|
this.logger.error(`Printer (${this.printerId}) network or transport error, marking it as unreachable; ${e}`);
|
|
167
|
-
this.setApiState(
|
|
169
|
+
this.setApiState("noResponse");
|
|
168
170
|
}
|
|
169
171
|
throw e;
|
|
170
172
|
});
|
|
171
173
|
this.username = await this.octoPrintApiService.getAdminUserOrDefault(this.loginDto).catch((e)=>{
|
|
172
174
|
const status = e.response?.status;
|
|
173
175
|
if (status === _httpstatuscodesconstants.HttpStatusCode.FORBIDDEN) {
|
|
174
|
-
this.setApiState(
|
|
175
|
-
this.setSocketState(
|
|
176
|
+
this.setApiState("authFail");
|
|
177
|
+
this.setSocketState("aborted");
|
|
176
178
|
} else {
|
|
177
|
-
this.setApiState(
|
|
178
|
-
this.setSocketState(
|
|
179
|
+
this.setApiState("authFail");
|
|
180
|
+
this.setSocketState("aborted");
|
|
179
181
|
}
|
|
180
182
|
if ([
|
|
181
183
|
_httpstatuscodesconstants.HttpStatusCode.BAD_GATEWAY,
|
|
@@ -197,33 +199,8 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
197
199
|
this.reauthRequiredTimestamp = null;
|
|
198
200
|
}
|
|
199
201
|
resetSocketState() {
|
|
200
|
-
this.setSocketState(
|
|
201
|
-
this.setApiState(
|
|
202
|
-
}
|
|
203
|
-
setApiState(state) {
|
|
204
|
-
this.apiState = state;
|
|
205
|
-
this.apiStateUpdated = true;
|
|
206
|
-
this.apiStateUpdateTimestamp = Date.now();
|
|
207
|
-
if (this._debugMode) {
|
|
208
|
-
this.logger.log(`${this.printerId} API state updated to: ` + state);
|
|
209
|
-
}
|
|
210
|
-
this.emitEventSync(Message.API_STATE_UPDATED, state);
|
|
211
|
-
}
|
|
212
|
-
setSocketState(state) {
|
|
213
|
-
this.socketState = state;
|
|
214
|
-
this.stateUpdated = true;
|
|
215
|
-
this.stateUpdateTimestamp = Date.now();
|
|
216
|
-
if (this._debugMode) {
|
|
217
|
-
this.logger.log(`${this.printerId} Socket state updated to: ` + state);
|
|
218
|
-
}
|
|
219
|
-
this.emitEventSync(Message.WS_STATE_UPDATED, state);
|
|
220
|
-
}
|
|
221
|
-
async emitEvent(event, payload) {
|
|
222
|
-
await this.eventEmitter.emitAsync(octoPrintEvent(event), {
|
|
223
|
-
event,
|
|
224
|
-
payload,
|
|
225
|
-
printerId: this.printerId
|
|
226
|
-
});
|
|
202
|
+
this.setSocketState("unopened");
|
|
203
|
+
this.setApiState("unset");
|
|
227
204
|
}
|
|
228
205
|
emitEventSync(event, payload) {
|
|
229
206
|
this.eventEmitter.emit(octoPrintEvent(event), {
|
|
@@ -233,38 +210,69 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
233
210
|
});
|
|
234
211
|
}
|
|
235
212
|
async afterOpened(event) {
|
|
236
|
-
this.setSocketState(
|
|
213
|
+
this.setSocketState("opened");
|
|
237
214
|
await this.sendAuth();
|
|
238
215
|
await this.sendThrottle(_serverconstants.AppConstants.defaultSocketThrottleRate);
|
|
239
216
|
}
|
|
240
217
|
async onMessage(message) {
|
|
241
218
|
this.lastMessageReceivedTimestamp = Date.now();
|
|
242
219
|
if (this.socketState !== SOCKET_STATE.authenticated) {
|
|
243
|
-
this.setSocketState(
|
|
220
|
+
this.setSocketState("authenticated");
|
|
244
221
|
}
|
|
245
222
|
const data = JSON.parse(message);
|
|
246
223
|
const eventName = Object.keys(data)[0];
|
|
247
224
|
const payload = data[eventName];
|
|
225
|
+
if (this._debugMode) {
|
|
226
|
+
this.logger.log(`RX Msg ${eventName} ${message.substring(0, 140)}...`);
|
|
227
|
+
}
|
|
248
228
|
if (eventName === Message.reauthRequired) {
|
|
229
|
+
this.logger.log("Received 'reauthRequired', acting on it");
|
|
249
230
|
this.setReauthRequired();
|
|
231
|
+
} else if (eventName === Message.current && this.configService.get(_serverconstants.AppConstants.debugFileWritePrinterStatesKey, _serverconstants.AppConstants.defaultDebugFileWritePrinterStates) === "true") {
|
|
232
|
+
(0, _nodefs.writeFileSync)(`websocket_current_${this.printerId}.txt`, JSON.stringify(payload, null, 2));
|
|
250
233
|
}
|
|
251
234
|
await this.emitEvent(eventName, payload);
|
|
252
235
|
}
|
|
253
236
|
async afterClosed(event) {
|
|
254
|
-
this.setSocketState(
|
|
237
|
+
this.setSocketState("closed");
|
|
255
238
|
delete this.socket;
|
|
256
239
|
await this.emitEvent(Message.WS_CLOSED);
|
|
257
240
|
}
|
|
258
241
|
async onError(error) {
|
|
259
|
-
this.setSocketState(
|
|
242
|
+
this.setSocketState("error");
|
|
260
243
|
await this.emitEvent(Message.WS_ERROR, error);
|
|
261
244
|
}
|
|
245
|
+
async emitEvent(event, payload) {
|
|
246
|
+
await this.eventEmitter.emitAsync(octoPrintEvent(event), {
|
|
247
|
+
event,
|
|
248
|
+
payload,
|
|
249
|
+
printerId: this.printerId
|
|
250
|
+
});
|
|
251
|
+
}
|
|
262
252
|
async sendAuth() {
|
|
263
253
|
this.setSocketState(SOCKET_STATE.authenticating);
|
|
264
254
|
await this.sendMessage(JSON.stringify({
|
|
265
255
|
auth: `${this.username}:${this.sessionDto.session}`
|
|
266
256
|
}));
|
|
267
257
|
}
|
|
258
|
+
setSocketState(state) {
|
|
259
|
+
this.socketState = state;
|
|
260
|
+
this.stateUpdated = true;
|
|
261
|
+
this.stateUpdateTimestamp = Date.now();
|
|
262
|
+
if (this._debugMode) {
|
|
263
|
+
this.logger.log(`${this.printerId} Socket state updated to: ` + state);
|
|
264
|
+
}
|
|
265
|
+
this.emitEventSync(Message.WS_STATE_UPDATED, state);
|
|
266
|
+
}
|
|
267
|
+
setApiState(state) {
|
|
268
|
+
this.apiState = state;
|
|
269
|
+
this.apiStateUpdated = true;
|
|
270
|
+
this.apiStateUpdateTimestamp = Date.now();
|
|
271
|
+
if (this._debugMode) {
|
|
272
|
+
this.logger.log(`${this.printerId} API state updated to: ` + state);
|
|
273
|
+
}
|
|
274
|
+
this.emitEventSync(Message.API_STATE_UPDATED, state);
|
|
275
|
+
}
|
|
268
276
|
}
|
|
269
277
|
|
|
270
278
|
//# sourceMappingURL=octoprint-sockio.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/octoprint/octoprint-sockio.adapter.ts"],"names":["API_STATE","Message","OctoPrintSockIoAdapter","SOCKET_STATE","octoPrintEvent","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","unopened","opening","authenticating","opened","authenticated","aborted","error","closed","unset","noResponse","globalKey","authFail","responding","WebsocketAdapter","octoPrintApiService","eventEmitter","configService","printerId","stateUpdated","stateUpdateTimestamp","socketState","apiStateUpdated","apiStateUpdateTimestamp","apiState","lastMessageReceivedTimestamp","reauthRequiredTimestamp","loginDto","logger","socketURL","sessionDto","username","constructor","loggerFactory","eventEmitter2","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","needsSetup","needsReauth","isClosedOrAborted","registerCredentials","socketLogin","protocol","httpUrl","normalizeUrl","printerURL","wsUrl","httpToWsUrl","pathname","open","socket","Error","close","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","login","then","r","setApiState","setSocketState","ExternalServiceError","needs","group","warn","catch","e","response","status","getAdminUserOrDefault","HttpStatusCode","FORBIDDEN","BAD_GATEWAY","NOT_IMPLEMENTED","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","includes","setReauthRequired","Date","now","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/octoprint/octoprint-sockio.adapter.ts"],"names":["API_STATE","Message","OctoPrintSockIoAdapter","SOCKET_STATE","octoPrintEvent","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","unopened","opening","authenticating","opened","authenticated","aborted","error","closed","unset","noResponse","globalKey","authFail","responding","WebsocketAdapter","octoPrintApiService","eventEmitter","configService","printerId","stateUpdated","stateUpdateTimestamp","socketState","apiStateUpdated","apiStateUpdateTimestamp","apiState","lastMessageReceivedTimestamp","reauthRequiredTimestamp","loginDto","logger","socketURL","sessionDto","username","constructor","loggerFactory","eventEmitter2","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","needsSetup","needsReauth","isClosedOrAborted","registerCredentials","socketLogin","protocol","httpUrl","normalizeUrl","printerURL","wsUrl","httpToWsUrl","pathname","open","socket","Error","close","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","log","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","login","then","r","setApiState","setSocketState","ExternalServiceError","needs","group","warn","catch","e","response","status","getAdminUserOrDefault","HttpStatusCode","FORBIDDEN","BAD_GATEWAY","NOT_IMPLEMENTED","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","includes","setReauthRequired","Date","now","emitEventSync","payload","emit","afterOpened","onMessage","message","data","parse","eventName","Object","keys","substring","debugFileWritePrinterStatesKey","defaultDebugFileWritePrinterStates","writeFileSync","emitEvent","afterClosed","onError","emitAsync","auth","session","state"],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "normalizePrinterFile", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return normalizePrinterFile;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function normalizePrinterFile(file) {
|
|
12
|
+
if (!file) {
|
|
13
|
+
throw new Error("File should not be null for normalization");
|
|
14
|
+
}
|
|
15
|
+
const keys = Object.keys(file);
|
|
16
|
+
const fileCopy = {
|
|
17
|
+
...file
|
|
18
|
+
};
|
|
19
|
+
const knownKeys = [
|
|
20
|
+
"name",
|
|
21
|
+
"date",
|
|
22
|
+
"display",
|
|
23
|
+
"gcodeAnalysis",
|
|
24
|
+
"hash",
|
|
25
|
+
"origin",
|
|
26
|
+
"path",
|
|
27
|
+
"prints",
|
|
28
|
+
"refs",
|
|
29
|
+
"size",
|
|
30
|
+
"statistics",
|
|
31
|
+
"type",
|
|
32
|
+
"typePath"
|
|
33
|
+
];
|
|
34
|
+
const unknownKeys = keys.filter((k)=>!knownKeys.includes(k));
|
|
35
|
+
const customData = {};
|
|
36
|
+
for (const unknownKey of unknownKeys){
|
|
37
|
+
customData[unknownKey] = fileCopy[unknownKey];
|
|
38
|
+
delete fileCopy[unknownKey];
|
|
39
|
+
}
|
|
40
|
+
fileCopy.customData = customData;
|
|
41
|
+
return fileCopy;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=file.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/services/octoprint/utils/file.utils.ts"],"names":["normalizePrinterFile","file","Error","keys","Object","fileCopy","knownKeys","unknownKeys","filter","k","includes","customData","unknownKey"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,qBAAqBC,IAAyB;IAC5D,IAAI,CAACA,MAAM;QACT,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACF;IACzB,MAAMI,WAAW;QACf,GAAGJ,IAAI;IACT;IAEA,MAAMK,YAAY;QAChB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMC,cAAcJ,KAAKK,MAAM,CAAC,CAACC,IAAM,CAACH,UAAUI,QAAQ,CAACD;IAE3D,MAAME,aAAiC,CAAC;IACxC,KAAK,MAAMC,cAAcL,YAAa;QACpCI,UAAU,CAACC,WAAW,GAAGP,QAAQ,CAACO,WAAW;QAC7C,OAAOP,QAAQ,CAACO,WAAW;IAC7B;IAEAP,SAASM,UAAU,GAAGA;IAEtB,OAAON;AACT"}
|
|
@@ -50,6 +50,9 @@ function BaseService(entity, dto, createDTO, updateDto) {
|
|
|
50
50
|
return entity;
|
|
51
51
|
}
|
|
52
52
|
async create(dto) {
|
|
53
|
+
if (dto.id) {
|
|
54
|
+
delete dto.id;
|
|
55
|
+
}
|
|
53
56
|
await (0, _classvalidator.validate)(dto);
|
|
54
57
|
const entity = this.repository.create(dto);
|
|
55
58
|
await (0, _classvalidator.validate)(entity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/orm/base.service.ts"],"names":["BaseService","entity","dto","createDTO","updateDto","BaseServiceHost","typeormService","repository","constructor","getDataSource","getRepository","get","id","throwIfNotFound","findOneByOrFail","e","EntityNotFoundError","NotFoundException","undefined","list","options","find","listPaged","page","DEFAULT_PAGE","take","pageSize","skip","update","validate","Object","assign","create","save","delete","deleteMany","ids","emitEvent"],"mappings":";;;;+BAWgBA;;;eAAAA;;;yBAR0F;gCACjF;mCAGS;+BACQ;AAGnC,SAASA,YAKdC,MAAuB,EAAEC,GAAc,EAAEC,SAA2B,EAAEC,SAA2B;IACjG,MAAeC;QACbC,eAA+B;QAC/BC,WAA0B;QAE1BC,YAAY,EAAEF,cAAc,EAAsC,CAAE;YAClE,IAAI,CAACA,cAAc,GAAGA;YACtB,IAAI,CAACC,UAAU,GAAGD,eAAeG,aAAa,GAAGC,aAAa,CAACT;QACjE;QAIA,MAAMU,IAAIC,EAAgB,EAAEC,kBAAkB,IAAI,EAAE;YAClD,IAAI;gBACF,OAAO,IAAI,CAACN,UAAU,CAACO,eAAe,CAAC;oBAAEF;gBAAG;YAC9C,EAAE,OAAOG,GAAG;gBACV,IAAIF,mBAAmBE,aAAaC,4BAAmB,EAAE;oBACvD,MAAM,IAAIC,oCAAiB,CAAC,CAAC,WAAW,EAAEhB,OAAO,UAAU,EAAEW,GAAG,gBAAgB,CAAC;gBACnF;gBACA,OAAOM;YACT;QACF;QAEA,MAAMC,KAAKC,OAA4B,EAAE;YACvC,OAAO,IAAI,CAACb,UAAU,CAACc,IAAI,CAACD;QAC9B;QAEA,MAAME,UAAUC,OAAoBC,2BAAY,EAAEJ,OAA4B,EAAE;YAC9E,OAAO,IAAI,CAACb,UAAU,CAACc,IAAI,CAAC;gBAAEI,MAAMF,KAAKG,QAAQ;gBAAEC,MAAMJ,KAAKG,QAAQ,GAAGH,KAAKA,IAAI;gBAAE,GAAGH,OAAO;YAAC;QACjG;QAEA,MAAMQ,OAAOhB,EAAgB,EAAER,SAAoB,EAAE;YACnD,MAAMH,SAAS,MAAM,IAAI,CAACU,GAAG,CAACC;YAC9B,MAAMiB,IAAAA,wBAAQ,EAACzB;YACf,MAAMyB,IAAAA,wBAAQ,EAACC,OAAOC,MAAM,CAAC9B,QAAQG;YACrC,MAAM,IAAI,CAACG,UAAU,CAACqB,MAAM,CAAC3B,OAAOW,EAAE,EAAER;YACxC,OAAOH;QACT;QAEA,MAAM+B,OAAO9B,GAAc,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/base.service.ts"],"names":["BaseService","entity","dto","createDTO","updateDto","BaseServiceHost","typeormService","repository","constructor","getDataSource","getRepository","get","id","throwIfNotFound","findOneByOrFail","e","EntityNotFoundError","NotFoundException","undefined","list","options","find","listPaged","page","DEFAULT_PAGE","take","pageSize","skip","update","validate","Object","assign","create","save","delete","deleteMany","ids","emitEvent"],"mappings":";;;;+BAWgBA;;;eAAAA;;;yBAR0F;gCACjF;mCAGS;+BACQ;AAGnC,SAASA,YAKdC,MAAuB,EAAEC,GAAc,EAAEC,SAA2B,EAAEC,SAA2B;IACjG,MAAeC;QACbC,eAA+B;QAC/BC,WAA0B;QAE1BC,YAAY,EAAEF,cAAc,EAAsC,CAAE;YAClE,IAAI,CAACA,cAAc,GAAGA;YACtB,IAAI,CAACC,UAAU,GAAGD,eAAeG,aAAa,GAAGC,aAAa,CAACT;QACjE;QAIA,MAAMU,IAAIC,EAAgB,EAAEC,kBAAkB,IAAI,EAAE;YAClD,IAAI;gBACF,OAAO,IAAI,CAACN,UAAU,CAACO,eAAe,CAAC;oBAAEF;gBAAG;YAC9C,EAAE,OAAOG,GAAG;gBACV,IAAIF,mBAAmBE,aAAaC,4BAAmB,EAAE;oBACvD,MAAM,IAAIC,oCAAiB,CAAC,CAAC,WAAW,EAAEhB,OAAO,UAAU,EAAEW,GAAG,gBAAgB,CAAC;gBACnF;gBACA,OAAOM;YACT;QACF;QAEA,MAAMC,KAAKC,OAA4B,EAAE;YACvC,OAAO,IAAI,CAACb,UAAU,CAACc,IAAI,CAACD;QAC9B;QAEA,MAAME,UAAUC,OAAoBC,2BAAY,EAAEJ,OAA4B,EAAE;YAC9E,OAAO,IAAI,CAACb,UAAU,CAACc,IAAI,CAAC;gBAAEI,MAAMF,KAAKG,QAAQ;gBAAEC,MAAMJ,KAAKG,QAAQ,GAAGH,KAAKA,IAAI;gBAAE,GAAGH,OAAO;YAAC;QACjG;QAEA,MAAMQ,OAAOhB,EAAgB,EAAER,SAAoB,EAAE;YACnD,MAAMH,SAAS,MAAM,IAAI,CAACU,GAAG,CAACC;YAC9B,MAAMiB,IAAAA,wBAAQ,EAACzB;YACf,MAAMyB,IAAAA,wBAAQ,EAACC,OAAOC,MAAM,CAAC9B,QAAQG;YACrC,MAAM,IAAI,CAACG,UAAU,CAACqB,MAAM,CAAC3B,OAAOW,EAAE,EAAER;YACxC,OAAOH;QACT;QAEA,MAAM+B,OAAO9B,GAAc,EAAE;YAE3B,IAAIA,IAAIU,EAAE,EAAE;gBACV,OAAOV,IAAIU,EAAE;YACf;YACA,MAAMiB,IAAAA,wBAAQ,EAAC3B;YACf,MAAMD,SAAS,IAAI,CAACM,UAAU,CAACyB,MAAM,CAAC9B;YACtC,MAAM2B,IAAAA,wBAAQ,EAAC5B;YAEf,OAAO,MAAM,IAAI,CAACM,UAAU,CAAC0B,IAAI,CAAChC;QACpC;QAEA,MAAMiC,OAAOtB,EAAgB,EAAEC,kBAAkB,IAAI,EAAE;YACrD,MAAMZ,SAAS,MAAM,IAAI,CAACU,GAAG,CAACC,IAAIC;YAClC,OAAO,MAAM,IAAI,CAACN,UAAU,CAAC2B,MAAM,CAACjC,OAAOW,EAAE;QAC/C;QAEA,MAAMuB,WAAWC,GAAmB,EAAEC,YAAY,IAAI,EAAyB;YAC7E,OAAO,MAAM,IAAI,CAAC9B,UAAU,CAAC2B,MAAM,CAACE;QACtC;IACF;IAEA,OAAO/B;AACT"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "CameraStreamService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return CameraStreamService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _baseservice = require("./base.service");
|
|
12
|
+
const _entities = require("../../entities");
|
|
13
|
+
const _camerastreamdto = require("../interfaces/camera-stream.dto");
|
|
14
|
+
class CameraStreamService extends (0, _baseservice.BaseService)(_entities.CameraStream, _camerastreamdto.CameraStreamDto) {
|
|
15
|
+
toDto(entity) {
|
|
16
|
+
return {
|
|
17
|
+
id: entity.id,
|
|
18
|
+
streamURL: entity.streamURL,
|
|
19
|
+
name: entity.name,
|
|
20
|
+
printerId: entity.printerId
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=camera-stream.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/camera-stream.service.ts"],"names":["CameraStreamService","BaseService","CameraStream","CameraStreamDto","toDto","entity","id","streamURL","name","printerId"],"mappings":";;;;+BAMaA;;;eAAAA;;;6BANe;0BACC;iCACG;AAIzB,MAAMA,4BACHC,IAAAA,wBAAW,EAACC,sBAAY,EAAEC,gCAAe;IAGjDC,MAAMC,MAAoB,EAAiC;QAEzD,OAAO;YACLC,IAAID,OAAOC,EAAE;YACbC,WAAWF,OAAOE,SAAS;YAC3BC,MAAMH,OAAOG,IAAI;YACjBC,WAAWJ,OAAOI,SAAS;QAO7B;IACF;AACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "CustomGcodeService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return CustomGcodeService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _entities = require("../../entities");
|
|
12
|
+
const _customgcodedto = require("../interfaces/custom-gcode.dto");
|
|
13
|
+
const _baseservice = require("./base.service");
|
|
14
|
+
class CustomGcodeService extends (0, _baseservice.BaseService)(_entities.CustomGcode, _customgcodedto.CustomGcodeDto) {
|
|
15
|
+
toDto(entity) {
|
|
16
|
+
return {
|
|
17
|
+
id: entity.id,
|
|
18
|
+
name: entity.name,
|
|
19
|
+
description: entity.description,
|
|
20
|
+
gcode: [
|
|
21
|
+
...entity.gcode
|
|
22
|
+
]
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async create(gcodeScript) {
|
|
26
|
+
return await super.create(gcodeScript);
|
|
27
|
+
}
|
|
28
|
+
async delete(gcodeScriptId, throwIfNotFound) {
|
|
29
|
+
return await super.delete(gcodeScriptId, throwIfNotFound);
|
|
30
|
+
}
|
|
31
|
+
async get(gcodeScriptId) {
|
|
32
|
+
return await super.get(gcodeScriptId);
|
|
33
|
+
}
|
|
34
|
+
async list() {
|
|
35
|
+
return await super.list();
|
|
36
|
+
}
|
|
37
|
+
async update(gcodeScriptId, updatedData) {
|
|
38
|
+
return await super.update(gcodeScriptId, updatedData);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=custom-gcode.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/custom-gcode.service.ts"],"names":["CustomGcodeService","BaseService","CustomGcode","CustomGcodeDto","toDto","entity","id","name","description","gcode","create","gcodeScript","delete","gcodeScriptId","throwIfNotFound","get","list","update","updatedData"],"mappings":";;;;+BAMaA;;;eAAAA;;;0BALe;gCAEG;6BACH;AAErB,MAAMA,2BACHC,IAAAA,wBAAW,EAACC,qBAAW,EAAEC,8BAAc;IAG/CC,MAAMC,MAAmB,EAAkB;QACzC,OAAO;YACLC,IAAID,OAAOC,EAAE;YACbC,MAAMF,OAAOE,IAAI;YACjBC,aAAaH,OAAOG,WAAW;YAC/BC,OAAO;mBAAIJ,OAAOI,KAAK;aAAC;QAC1B;IACF;IAEA,MAAMC,OAAOC,WAAyC,EAAwB;QAC5E,OAAO,MAAM,KAAK,CAACD,OAAOC;IAC5B;IAEA,MAAMC,OAAOC,aAA2B,EAAEC,eAAyB,EAAE;QACnE,OAAO,MAAM,KAAK,CAACF,OAAOC,eAAeC;IAC3C;IAEA,MAAMC,IAAIF,aAA2B,EAAwB;QAC3D,OAAO,MAAM,KAAK,CAACE,IAAIF;IACzB;IAEA,MAAMG,OAA+B;QACnC,OAAO,MAAM,KAAK,CAACA;IACrB;IAEA,MAAMC,OAAOJ,aAA2B,EAAEK,WAAyC,EAAwB;QACzG,OAAO,MAAM,KAAK,CAACD,OAAOJ,eAAeK;IAC3C;AACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FloorPositionService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FloorPositionService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _floorpositionentity = require("../../entities/floor-position.entity");
|
|
12
|
+
const _baseservice = require("./base.service");
|
|
13
|
+
const _floordto = require("../interfaces/floor.dto");
|
|
14
|
+
class FloorPositionService extends (0, _baseservice.BaseService)(_floorpositionentity.FloorPosition, _floordto.PositionDto) {
|
|
15
|
+
constructor({ typeormService }){
|
|
16
|
+
super({
|
|
17
|
+
typeormService
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async create(dto) {
|
|
21
|
+
return super.create(dto);
|
|
22
|
+
}
|
|
23
|
+
findPosition(x, y) {
|
|
24
|
+
return this.repository.findOneBy({
|
|
25
|
+
x,
|
|
26
|
+
y
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
findPrinterPosition(printerId) {
|
|
30
|
+
return this.repository.findOneBy({
|
|
31
|
+
id: printerId
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
deletePrinterPositionsByPrinterId(printerId) {
|
|
35
|
+
return this.repository.delete({
|
|
36
|
+
id: printerId
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
findPrinterPositionOnFloor(floorId, printerId) {
|
|
40
|
+
return this.repository.findOneBy({
|
|
41
|
+
floorId,
|
|
42
|
+
printerId
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
toDto(entity) {
|
|
46
|
+
return {
|
|
47
|
+
x: entity.x,
|
|
48
|
+
y: entity.y,
|
|
49
|
+
printerId: entity.printerId,
|
|
50
|
+
floorId: entity.floorId
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=floor-position.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/floor-position.service.ts"],"names":["FloorPositionService","BaseService","FloorPosition","PositionDto","constructor","typeormService","create","dto","findPosition","x","y","repository","findOneBy","findPrinterPosition","printerId","id","deletePrinterPositionsByPrinterId","delete","findPrinterPositionOnFloor","floorId","toDto","entity"],"mappings":";;;;+BAOaA;;;eAAAA;;;qCAPiB;6BACF;0BAGA;AAGrB,MAAMA,6BAA6BC,IAAAA,wBAAW,EAACC,kCAAa,EAAEC,qBAAW;IAC9EC,YAAY,EAAEC,cAAc,EAAsC,CAAE;QAClE,KAAK,CAAC;YAAEA;QAAe;IACzB;IAEA,MAAMC,OAAOC,GAA8B,EAA0B;QACnE,OAAO,KAAK,CAACD,OAAOC;IACtB;IAEAC,aAAaC,CAAS,EAAEC,CAAS,EAAE;QACjC,OAAO,IAAI,CAACC,UAAU,CAACC,SAAS,CAAC;YAAEH;YAAGC;QAAE;IAC1C;IAEAG,oBAAoBC,SAAuB,EAAE;QAC3C,OAAO,IAAI,CAACH,UAAU,CAACC,SAAS,CAAC;YAAEG,IAAID;QAAU;IACnD;IAEAE,kCAAkCF,SAAuB,EAAE;QACzD,OAAO,IAAI,CAACH,UAAU,CAACM,MAAM,CAAC;YAAEF,IAAID;QAAU;IAChD;IAEAI,2BAA2BC,OAAqB,EAAEL,SAAuB,EAAE;QACzE,OAAO,IAAI,CAACH,UAAU,CAACC,SAAS,CAAC;YAAEO;YAASL;QAAU;IACxD;IAEAM,MAAMC,MAAqB,EAA6B;QACtD,OAAO;YACLZ,GAAGY,OAAOZ,CAAC;YACXC,GAAGW,OAAOX,CAAC;YACXI,WAAWO,OAAOP,SAAS;YAC3BK,SAASE,OAAOF,OAAO;QACzB;IACF;AACF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FloorService", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FloorService;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _baseservice = require("./base.service");
|
|
12
|
+
const _entities = require("../../entities");
|
|
13
|
+
const _floordto = require("../interfaces/floor.dto");
|
|
14
|
+
const _validators = require("../../handlers/validators");
|
|
15
|
+
const _floorservicevalidation = require("../validators/floor-service.validation");
|
|
16
|
+
const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
17
|
+
class FloorService extends (0, _baseservice.BaseService)(_entities.Floor, _floordto.FloorDto, _floordto.CreateFloorDto, _floordto.UpdateFloorDto) {
|
|
18
|
+
floorPositionService;
|
|
19
|
+
constructor({ floorPositionService, typeormService }){
|
|
20
|
+
super({
|
|
21
|
+
typeormService
|
|
22
|
+
});
|
|
23
|
+
this.floorPositionService = floorPositionService;
|
|
24
|
+
}
|
|
25
|
+
async create(dto) {
|
|
26
|
+
await (0, _validators.validateInput)(dto, _floorservicevalidation.createFloorRules);
|
|
27
|
+
const floor = await super.create({
|
|
28
|
+
name: dto.name,
|
|
29
|
+
floor: dto.floor,
|
|
30
|
+
printers: []
|
|
31
|
+
});
|
|
32
|
+
const printers = dto.printers;
|
|
33
|
+
if (printers?.length) {
|
|
34
|
+
for (let printer of printers){
|
|
35
|
+
await this.addOrUpdatePrinter(floor.id, printer);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return this.get(floor.id);
|
|
39
|
+
}
|
|
40
|
+
toDto(floor) {
|
|
41
|
+
return {
|
|
42
|
+
id: floor.id,
|
|
43
|
+
name: floor.name,
|
|
44
|
+
floor: floor.floor,
|
|
45
|
+
printers: floor.printers.map((p)=>({
|
|
46
|
+
printerId: p.printerId,
|
|
47
|
+
floorId: p.floorId,
|
|
48
|
+
x: p.x,
|
|
49
|
+
y: p.y
|
|
50
|
+
}))
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async createDefaultFloor() {
|
|
54
|
+
const floor = await this.create({
|
|
55
|
+
name: "Default Floor",
|
|
56
|
+
floor: 0
|
|
57
|
+
});
|
|
58
|
+
return await this.get(floor.id);
|
|
59
|
+
}
|
|
60
|
+
async update(floorId, update) {
|
|
61
|
+
const floor = await this.get(floorId);
|
|
62
|
+
const floorUpdate = Object.assign(floor, update);
|
|
63
|
+
await (0, _validators.validateInput)(floorUpdate, _floorservicevalidation.updateFloorRules);
|
|
64
|
+
const printers = floorUpdate.printers;
|
|
65
|
+
if (printers?.length) {
|
|
66
|
+
for (let printer of printers){
|
|
67
|
+
await this.addOrUpdatePrinter(floor.id, printer);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
delete floorUpdate.printers;
|
|
71
|
+
return super.update(floorId, floorUpdate);
|
|
72
|
+
}
|
|
73
|
+
async updateName(floorId, name) {
|
|
74
|
+
let floor = await this.get(floorId);
|
|
75
|
+
floor.name = name;
|
|
76
|
+
floor = await this.update(floorId, {
|
|
77
|
+
name
|
|
78
|
+
});
|
|
79
|
+
return floor;
|
|
80
|
+
}
|
|
81
|
+
async updateLevel(floorId, level) {
|
|
82
|
+
let floor = await this.get(floorId);
|
|
83
|
+
floor.floor = level;
|
|
84
|
+
floor = await this.update(floorId, {
|
|
85
|
+
floor: level
|
|
86
|
+
});
|
|
87
|
+
return floor;
|
|
88
|
+
}
|
|
89
|
+
async addOrUpdatePrinter(floorId, positionDto) {
|
|
90
|
+
const floor = await this.get(floorId);
|
|
91
|
+
const position = await this.floorPositionService.findPrinterPosition(positionDto.printerId);
|
|
92
|
+
if (position) {
|
|
93
|
+
await this.floorPositionService.delete(position.id);
|
|
94
|
+
}
|
|
95
|
+
const xyPosition = await this.floorPositionService.findPosition(positionDto.x, positionDto.y);
|
|
96
|
+
if (xyPosition) {
|
|
97
|
+
await this.floorPositionService.delete(xyPosition.id);
|
|
98
|
+
}
|
|
99
|
+
const newPosition = new _entities.FloorPosition();
|
|
100
|
+
Object.assign(newPosition, {
|
|
101
|
+
x: positionDto.x,
|
|
102
|
+
y: positionDto.y,
|
|
103
|
+
printerId: positionDto.printerId,
|
|
104
|
+
floorId: floorId
|
|
105
|
+
});
|
|
106
|
+
await this.floorPositionService.create(newPosition);
|
|
107
|
+
return this.get(floorId);
|
|
108
|
+
}
|
|
109
|
+
async removePrinter(floorId, printerId) {
|
|
110
|
+
const position = await this.floorPositionService.findPrinterPositionOnFloor(floorId, printerId);
|
|
111
|
+
if (!position) {
|
|
112
|
+
throw new _runtimeexceptions.NotFoundException("This printer was not found on this floor");
|
|
113
|
+
}
|
|
114
|
+
await this.floorPositionService.delete(position.id);
|
|
115
|
+
return await this.get(floorId);
|
|
116
|
+
}
|
|
117
|
+
async deletePrinterFromAnyFloor(printerId) {
|
|
118
|
+
await this.floorPositionService.deletePrinterPositionsByPrinterId(printerId);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=floor.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/floor.service.ts"],"names":["FloorService","BaseService","Floor","FloorDto","CreateFloorDto","UpdateFloorDto","floorPositionService","constructor","typeormService","create","dto","validateInput","createFloorRules","floor","name","printers","length","printer","addOrUpdatePrinter","id","get","toDto","map","p","printerId","floorId","x","y","createDefaultFloor","update","floorUpdate","Object","assign","updateFloorRules","updateName","updateLevel","level","positionDto","position","findPrinterPosition","delete","xyPosition","findPosition","newPosition","FloorPosition","removePrinter","findPrinterPositionOnFloor","NotFoundException","deletePrinterFromAnyFloor","deletePrinterPositionsByPrinterId"],"mappings":"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"}
|