summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-04-17 00:45:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-04-17 00:45:33 +0900
commitb1865047187bf6fc9d4ad3b56a0d4eb6b2817c2b (patch)
tree17a8a34528095c0b34283fd684f7939be66f087f /src/server/api
parentRefactor (diff)
downloadsharkey-b1865047187bf6fc9d4ad3b56a0d4eb6b2817c2b.tar.gz
sharkey-b1865047187bf6fc9d4ad3b56a0d4eb6b2817c2b.tar.bz2
sharkey-b1865047187bf6fc9d4ad3b56a0d4eb6b2817c2b.zip
Metaのアクセスでトランザクションを張るように (#4720)
* admin/instanceでmetaをキャッシュしないように * Metaのアクセスにトランザクションをかける
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index e242ac71a1..3c6380acb4 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
-import { Metas } from '../../../../models';
+import { getConnection } from 'typeorm';
import { Meta } from '../../../../models/entities/meta';
export const meta = {
@@ -505,11 +505,17 @@ export default define(meta, async (ps) => {
set.swPrivateKey = ps.swPrivateKey;
}
- const meta = await Metas.findOne();
+ await getConnection().transaction(async transactionalEntityManager => {
+ const meta = await transactionalEntityManager.findOne(Meta, {
+ order: {
+ id: 'DESC'
+ }
+ });
- if (meta) {
- await Metas.update(meta.id, set);
- } else {
- await Metas.save(set);
- }
+ if (meta) {
+ await transactionalEntityManager.update(Meta, meta.id, set);
+ } else {
+ await transactionalEntityManager.save(Meta, set);
+ }
+ });
});