mirror of
https://iceshrimp.dev/iceshrimp/iceshrimp
synced 2024-11-23 22:56:08 +09:00
parent
ab5701e5b5
commit
2e1a72d030
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
- クライアント: テーマの管理が行えない問題を修正
|
- クライアント: テーマの管理が行えない問題を修正
|
||||||
|
- API: アプリケーション通知が取得できない問題を修正
|
||||||
|
|
||||||
## 12.92.0 (2021/10/16)
|
## 12.92.0 (2021/10/16)
|
||||||
|
|
||||||
|
@ -171,6 +171,9 @@ const users = userIds.length > 0 ? await Users.find({
|
|||||||
SQLでは配列のインデックスは**1始まり**。
|
SQLでは配列のインデックスは**1始まり**。
|
||||||
`[a, b, c]`の `a`にアクセスしたいなら`[0]`ではなく`[1]`と書く
|
`[a, b, c]`の `a`にアクセスしたいなら`[0]`ではなく`[1]`と書く
|
||||||
|
|
||||||
|
### null IN
|
||||||
|
nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。
|
||||||
|
|
||||||
### `undefined`にご用心
|
### `undefined`にご用心
|
||||||
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
|
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
|
||||||
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
|
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
|
||||||
|
@ -6,6 +6,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
|
|||||||
import { Notifications, Followings, Mutings, Users } from '@/models/index';
|
import { Notifications, Followings, Mutings, Users } from '@/models/index';
|
||||||
import { notificationTypes } from '@/types';
|
import { notificationTypes } from '@/types';
|
||||||
import read from '@/services/note/read';
|
import read from '@/services/note/read';
|
||||||
|
import { Brackets } from 'typeorm';
|
||||||
|
|
||||||
export const meta = {
|
export const meta = {
|
||||||
tags: ['account', 'notifications'],
|
tags: ['account', 'notifications'],
|
||||||
@ -94,10 +95,16 @@ export default define(meta, async (ps, user) => {
|
|||||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||||
.leftJoinAndSelect('renote.user', 'renoteUser');
|
.leftJoinAndSelect('renote.user', 'renoteUser');
|
||||||
|
|
||||||
query.andWhere(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`);
|
query.andWhere(new Brackets(qb => { qb
|
||||||
|
.where(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`)
|
||||||
|
.orWhere('notification.notifierId IS NULL');
|
||||||
|
}));
|
||||||
query.setParameters(mutingQuery.getParameters());
|
query.setParameters(mutingQuery.getParameters());
|
||||||
|
|
||||||
query.andWhere(`notification.notifierId NOT IN (${ suspendedQuery.getQuery() })`);
|
query.andWhere(new Brackets(qb => { qb
|
||||||
|
.where(`notification.notifierId NOT IN (${ suspendedQuery.getQuery() })`)
|
||||||
|
.orWhere('notification.notifierId IS NULL');
|
||||||
|
}));
|
||||||
|
|
||||||
if (ps.following) {
|
if (ps.following) {
|
||||||
query.andWhere(`((notification.notifierId IN (${ followingQuery.getQuery() })) OR (notification.notifierId = :meId))`, { meId: user.id });
|
query.andWhere(`((notification.notifierId IN (${ followingQuery.getQuery() })) OR (notification.notifierId = :meId))`, { meId: user.id });
|
||||||
|
Loading…
Reference in New Issue
Block a user