mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
center: use different field for version downgrade
This commit is contained in:
2 files changed
+24
-5
No files matched your search
@@ -1,5 +1,6 @@
|
|||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
import crypto from 'crypto-js';
|
import crypto from 'crypto-js';
|
||||||
|
import { lt } from 'semver';
|
||||||
import {
|
import {
|
||||||
db, definePlugin, ForbiddenError, Handler, post, Types, yaml,
|
db, definePlugin, ForbiddenError, Handler, post, Types, yaml,
|
||||||
} from 'hydrooj';
|
} from 'hydrooj';
|
||||||
@@ -43,8 +44,7 @@ class DataReportHandler extends Handler {
|
|||||||
throw new ForbiddenError();
|
throw new ForbiddenError();
|
||||||
}
|
}
|
||||||
const old = await coll.findOne({ _id: installId });
|
const old = await coll.findOne({ _id: installId });
|
||||||
await coll.updateOne({ _id: installId }, {
|
const setPayload = {
|
||||||
$set: {
|
|
||||||
version: payload.version,
|
version: payload.version,
|
||||||
name: payload.name,
|
name: payload.name,
|
||||||
url: payload.url,
|
url: payload.url,
|
||||||
@@ -62,11 +62,29 @@ class DataReportHandler extends Handler {
|
|||||||
recordCount: payload.recordCount,
|
recordCount: payload.recordCount,
|
||||||
sandbox: payload.sandbox,
|
sandbox: payload.sandbox,
|
||||||
dbVersion: payload.dbVersion,
|
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() },
|
$setOnInsert: { init: new Date() },
|
||||||
}, { upsert: true });
|
}, { upsert: true });
|
||||||
|
}
|
||||||
this.ctx.emit('center/report', this, installId, old, payload);
|
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",
|
"name": "@hydrooj/center",
|
||||||
"version": "0.2.3",
|
"version": "0.2.4",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"repository": "https://github.com/hydro-dev/Hydro.git",
|
"repository": "https://github.com/hydro-dev/Hydro.git",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
"hydrooj": "*"
|
"hydrooj": "*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"crypto-js": "^4.1.1"
|
"crypto-js": "^4.1.1",
|
||||||
|
"semver": "^7.3.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user