diff options
| author | nenohi <kimutipartylove@gmail.com> | 2023-07-08 08:56:11 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-08 08:56:11 +0900 |
| commit | 3c6175d95952c6f0e2d55e7e0064cbc1cd297fdd (patch) | |
| tree | bae4b84ba3e7e56650641428050a05d0d3c3a3ad /packages/backend/src/server/api/endpoints/meta.ts | |
| parent | use engines (diff) | |
| download | misskey-3c6175d95952c6f0e2d55e7e0064cbc1cd297fdd.tar.gz misskey-3c6175d95952c6f0e2d55e7e0064cbc1cd297fdd.tar.bz2 misskey-3c6175d95952c6f0e2d55e7e0064cbc1cd297fdd.zip | |
広告の曜日を設定できるように (#10095)
* 曜日選択できるように
* ラベル選択でもチェックが変更されるように
* adを参照しないといけないかも
* smallint -> integer
* 異物混入だったので取りだし
* タイムゾーン指定(Date2つ使うのなんか違和感
* 未テスト
* これにすると出てこないかも
* UIチョット変更
* UI変更 fix bug
* 畳むように修正
* dayofweek->dayOfWeek
* マイグレ時にnot null,default設定してるのでnullable:falseでよさそう
* コメントの記載
* Update packages/backend/src/server/api/endpoints/meta.ts
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
---------
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/meta.ts')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/meta.ts | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/packages/backend/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts index 6ef5f0d5c8..915a1e54f8 100644 --- a/packages/backend/src/server/api/endpoints/meta.ts +++ b/packages/backend/src/server/api/endpoints/meta.ts @@ -1,4 +1,4 @@ -import { IsNull, LessThanOrEqual, MoreThan } from 'typeorm'; +import { IsNull, LessThanOrEqual, MoreThan, Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import JSON5 from 'json5'; import type { AdsRepository, UsersRepository } from '@/models/index.js'; @@ -263,13 +263,16 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { super(meta, paramDef, async (ps, me) => { const instance = await this.metaService.fetch(true); - const ads = await this.adsRepository.find({ - where: { - expiresAt: MoreThan(new Date()), - startsAt: LessThanOrEqual(new Date()), - }, - }); - + const ads = await this.adsRepository.createQueryBuilder("ads") + .where('ads.expiresAt > :now', { now: new Date() }) + .andWhere('ads.startsAt <= :now', { now: new Date() }) + .andWhere(new Brackets(qb => { + // 曜日のビットフラグを確認する + qb.where('ads.dayOfWeek & :dayOfWeek > 0', { dayOfWeek: 1 << new Date().getDay() }) + .orWhere('ads.dayOfWeek = 0'); + })) + .getMany(); + const response: any = { maintainerName: instance.maintainerName, maintainerEmail: instance.maintainerEmail, @@ -311,6 +314,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { place: ad.place, ratio: ad.ratio, imageUrl: ad.imageUrl, + dayOfWeek: ad.dayOfWeek, })), enableEmail: instance.enableEmail, enableServiceWorker: instance.enableServiceWorker, |