Compare commits

..

3 Commits

3 changed files with 25 additions and 1 deletions

View File

@ -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;

View File

@ -142,6 +142,7 @@ export const newHostRouteHandler = async (req, res) => {
updatedAt: new Date(),
name: req.body.name,
active: req.body.active,
tags: req.body.tags,
};
const result = await newObject({
model: hostModel,

View File

@ -50,6 +50,7 @@ const trimSpotlightObject = (object, objectType) => {
objectType: objectType || undefined,
online: object.online || undefined,
amount: object.amount || undefined,
unit: object.unit || undefined,
};
};