sharkey/src/misc/fetch-meta.ts
MeiMei b186504718 Metaのアクセスでトランザクションを張るように (#4720)
* admin/instanceでmetaをキャッシュしないように

* Metaのアクセスにトランザクションをかける
2019-04-17 00:45:33 +09:00

22 lines
570 B
TypeScript

import { Meta } from '../models/entities/meta';
import { getConnection } from 'typeorm';
export default async function(): Promise<Meta> {
return await getConnection().transaction(async transactionalEntityManager => {
// バグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する
const meta = await transactionalEntityManager.findOne(Meta, {
order: {
id: 'DESC'
}
});
if (meta) {
return meta;
} else {
return await transactionalEntityManager.save(Meta, {
id: 'x'
}) as Meta;
}
});
}