広告開始時期の設定 (#9944)

* 広告開始時期の設定

* 過去のものも表示するように
This commit is contained in:
nenohi
2023-02-15 14:29:40 +09:00
committed by GitHub
parent 8caf288ac1
commit 71c42bef9b
8 changed files with 36 additions and 8 deletions

View File

@@ -20,9 +20,10 @@ export const paramDef = {
priority: { type: 'string' },
ratio: { type: 'integer' },
expiresAt: { type: 'integer' },
startAt: { type: 'integer' },
imageUrl: { type: 'string', minLength: 1 },
},
required: ['url', 'memo', 'place', 'priority', 'ratio', 'expiresAt', 'imageUrl'],
required: ['url', 'memo', 'place', 'priority', 'ratio', 'expiresAt', 'startAt', 'imageUrl'],
} as const;
// eslint-disable-next-line import/no-default-export
@@ -39,6 +40,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
id: this.idService.genId(),
createdAt: new Date(),
expiresAt: new Date(ps.expiresAt),
startAt: new Date(ps.startAt),
url: ps.url,
imageUrl: ps.imageUrl,
priority: ps.priority,

View File

@@ -32,8 +32,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
) {
super(meta, paramDef, async (ps, me) => {
const query = this.queryService.makePaginationQuery(this.adsRepository.createQueryBuilder('ad'), ps.sinceId, ps.untilId)
.andWhere('ad.expiresAt > :now', { now: new Date() });
const ads = await query.take(ps.limit).getMany();
return ads;

View File

@@ -30,8 +30,9 @@ export const paramDef = {
priority: { type: 'string' },
ratio: { type: 'integer' },
expiresAt: { type: 'integer' },
startAt: { type: 'integer' },
},
required: ['id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt'],
required: ['id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt', 'startAt'],
} as const;
// eslint-disable-next-line import/no-default-export
@@ -54,6 +55,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
memo: ps.memo,
imageUrl: ps.imageUrl,
expiresAt: new Date(ps.expiresAt),
startAt: new Date(ps.startAt),
});
});
}

View File

@@ -1,4 +1,4 @@
import { IsNull, MoreThan } from 'typeorm';
import { IsNull, LessThanOrEqual, MoreThan } from 'typeorm';
import { Inject, Injectable } from '@nestjs/common';
import type { AdsRepository, EmojisRepository, UsersRepository } from '@/models/index.js';
import { MAX_NOTE_TEXT_LENGTH, DB_MAX_NOTE_TEXT_LENGTH } from '@/const.js';
@@ -262,6 +262,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
const ads = await this.adsRepository.find({
where: {
expiresAt: MoreThan(new Date()),
startAt: LessThanOrEqual(new Date()),
},
});