|
|
@@ -97,16 +97,28 @@ module.exports = { register: app => {
|
|
|
app.routerUtils.onApiRequest(req, res);
|
|
|
if (!req.params.id ||!req.params.key || !Number.isInteger(req.body?.value?.length))
|
|
|
return app.routerUtils.onBadRequest(res);
|
|
|
- let data = await MediaService.fetchOne(app, req.params.id, req.sessionObj?.accessList);
|
|
|
- if (!data || data.accessType !== ACCESS_GRANT.write)
|
|
|
- return app.routerUtils.onPageNotFound(res);
|
|
|
+
|
|
|
+ let checksum = [ req.params.id ];
|
|
|
+ if (req.params.id === "list") {
|
|
|
+ if (!req.body?.['list[]'])
|
|
|
+ return app.routerUtils.onBadRequest(res);
|
|
|
+ checksum = req.body['list[]'];
|
|
|
+ }
|
|
|
+
|
|
|
+ let data = await MediaService.fetchMultiple(app, checksum, req.sessionObj?.accessList);
|
|
|
+ data = Object.keys(data)
|
|
|
+ .map(x => data[x])
|
|
|
+ .filter(x => x.ACCESS_TYPE != ACCESS_GRANT.write);
|
|
|
+
|
|
|
if (!req.body.value) {
|
|
|
- await app.databaseHelper.remove(MediaFileMetaModel, { md5sum: data.fixedSum, key: req.params.key, fromFile: 0 });
|
|
|
+ await app.databaseHelper.remove(MediaFileMetaModel, { md5sum: data.map(x => x.fixedSum), key: req.params.key, fromFile: 0 });
|
|
|
} else {
|
|
|
- let newMediaItemMedia = new MediaFileMetaModel(data.fixedSum, req.params.key, req.body.value, false);
|
|
|
- await app.databaseHelper.upsertOne(newMediaItemMedia);
|
|
|
+ let newMediaItemMedia = data.map(x => new MediaFileMetaModel(x.fixedSum, req.params.key, req.body.value, false));
|
|
|
+ await app.databaseHelper.remove(MediaFileMetaModel, { md5sum: data.map(x => x.fixedSum), key: req.params.key, fromFile: 0 });
|
|
|
+ await app.databaseHelper.insertMultipleSameTable(newMediaItemMedia);
|
|
|
}
|
|
|
- app.routerUtils.jsonResponse(res, MediaToJson(await MediaService.fetchOne(app, req.params.id, req.sessionObj?.accessList)));
|
|
|
+ const allMedias = await MediaService.fetchMultiple(app, checksum, req.sessionObj?.accessList);
|
|
|
+ app.routerUtils.jsonResponse(res, Object.keys(allMedias).map(x => allMedias[x]).map(x => MediaToJson(x)));
|
|
|
});
|
|
|
app.router.get("/api/media/list", async (req, res) => {
|
|
|
app.routerUtils.onApiRequest(req, res);
|