mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
center: use different field for version downgrade
This commit is contained in:
2 files changed
+44
-25
No files matched your search
+41
-23
@@ -1,5 +1,6 @@
|
||||
import assert from 'assert';
|
||||
import crypto from 'crypto-js';
|
||||
import { lt } from 'semver';
|
||||
import {
|
||||
db, definePlugin, ForbiddenError, Handler, post, Types, yaml,
|
||||
} from 'hydrooj';
|
||||
@@ -43,30 +44,47 @@ class DataReportHandler extends Handler {
|
||||
throw new ForbiddenError();
|
||||
}
|
||||
const old = await coll.findOne({ _id: installId });
|
||||
await coll.updateOne({ _id: installId }, {
|
||||
$set: {
|
||||
version: payload.version,
|
||||
name: payload.name,
|
||||
url: payload.url,
|
||||
addons: payload.addons,
|
||||
mem: payload.memory,
|
||||
osinfo: payload.osinfo,
|
||||
cpu: payload.cpu,
|
||||
ip: this.request.ip,
|
||||
flags: payload.flags,
|
||||
update: new Date(),
|
||||
domainCount: payload.domainCount,
|
||||
userCount: payload.userCount,
|
||||
problemCount: payload.problemCount,
|
||||
discussionCount: payload.discussionCount,
|
||||
recordCount: payload.recordCount,
|
||||
sandbox: payload.sandbox,
|
||||
dbVersion: payload.dbVersion,
|
||||
},
|
||||
$setOnInsert: { init: new Date() },
|
||||
}, { upsert: true });
|
||||
const setPayload = {
|
||||
version: payload.version,
|
||||
name: payload.name,
|
||||
url: payload.url,
|
||||
addons: payload.addons,
|
||||
mem: payload.memory,
|
||||
osinfo: payload.osinfo,
|
||||
cpu: payload.cpu,
|
||||
ip: this.request.ip,
|
||||
flags: payload.flags,
|
||||
update: new Date(),
|
||||
domainCount: payload.domainCount,
|
||||
userCount: payload.userCount,
|
||||
problemCount: payload.problemCount,
|
||||
discussionCount: payload.discussionCount,
|
||||
recordCount: payload.recordCount,
|
||||
sandbox: payload.sandbox,
|
||||
dbVersion: payload.dbVersion,
|
||||
};
|
||||
if (old && lt(payload.version, old.version)) {
|
||||
await coll.updateOne(
|
||||
{ _id: installId },
|
||||
{
|
||||
$push: {
|
||||
ips: this.request.ip,
|
||||
},
|
||||
$set: { downgrade: setPayload },
|
||||
},
|
||||
);
|
||||
} else {
|
||||
await coll.updateOne({ _id: installId }, {
|
||||
$push: {
|
||||
ips: this.request.ip,
|
||||
},
|
||||
$set: setPayload,
|
||||
$setOnInsert: { init: new Date() },
|
||||
}, { upsert: true });
|
||||
}
|
||||
this.ctx.emit('center/report', this, installId, old, payload);
|
||||
this.response.body = { code: 0 };
|
||||
// TODO deliver messages
|
||||
this.response.body = { code: 0, u: lt(payload.version, old.version) };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hydrooj/center",
|
||||
"version": "0.2.3",
|
||||
"version": "0.2.4",
|
||||
"main": "index.ts",
|
||||
"repository": "https://github.com/hydro-dev/Hydro.git",
|
||||
"author": "undefined <i@undefined.moe>",
|
||||
@@ -10,6 +10,7 @@
|
||||
"hydrooj": "*"
|
||||
},
|
||||
"dependencies": {
|
||||
"crypto-js": "^4.1.1"
|
||||
"crypto-js": "^4.1.1",
|
||||
"semver": "^7.3.8"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user