Added recalculation logic to printer schema for managing printer states based on activity and online status. Integrated editObject utility for state updates, enhancing printer state management.
This commit is contained in:
parent
02a05231d1
commit
0b3a911611
@ -1,7 +1,7 @@
|
||||
import mongoose from 'mongoose';
|
||||
import { generateId } from '../../utils.js';
|
||||
const { Schema } = mongoose;
|
||||
import { aggregateRollups, aggregateRollupsHistory } from '../../database.js';
|
||||
import { aggregateRollups, aggregateRollupsHistory, editObject } from '../../database.js';
|
||||
|
||||
// Define the moonraker connection schema
|
||||
const moonrakerSchema = new Schema(
|
||||
@ -123,6 +123,28 @@ printerSchema.statics.history = async function (from, to) {
|
||||
return results;
|
||||
};
|
||||
|
||||
printerSchema.statics.recalculate = async function (printer, user) {
|
||||
if (printer.active === false && printer.state?.type !== 'inactive') {
|
||||
await editObject({
|
||||
model: this,
|
||||
id: printer._id,
|
||||
updateData: { state: { type: 'inactive' } },
|
||||
user,
|
||||
recalculate: false,
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (printer.active === true && printer.state?.type === 'inactive' && printer.online === false) {
|
||||
await editObject({
|
||||
model: this,
|
||||
id: printer._id,
|
||||
updateData: { state: { type: 'offline' } },
|
||||
user,
|
||||
recalculate: false,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Add virtual id getter
|
||||
printerSchema.virtual('id').get(function () {
|
||||
return this._id;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user