enhance: sort newsletter by creation date

This commit is contained in:
Julian Krauser 2025-05-29 11:12:33 +02:00
parent d7a0ee694f
commit 2357497d3a
4 changed files with 28 additions and 1 deletions

View file

@ -56,6 +56,7 @@ import { SettingsFromEnv1745059495807 } from "./migrations/1745059495807-setting
import { MemberCreatedAt1746006549262 } from "./migrations/1746006549262-memberCreatedAt";
import { UserLoginRoutine1746252454922 } from "./migrations/1746252454922-UserLoginRoutine";
import { SettingsFromEnv_SET1745059495808 } from "./migrations/1745059495808-settingsFromEnv_set";
import { AddDateToNewsletter1748509435932 } from "./migrations/1748509435932-addDateToNewsletter";
configCheck();
@ -123,6 +124,7 @@ const dataSource = new DataSource({
SettingsFromEnv_SET1745059495808,
MemberCreatedAt1746006549262,
UserLoginRoutine1746252454922,
AddDateToNewsletter1748509435932,
],
migrationsRun: true,
migrationsTransactionMode: "each",

View file

@ -1,4 +1,4 @@
import { Column, Entity, ManyToOne, OneToMany, PrimaryColumn } from "typeorm";
import { Column, CreateDateColumn, Entity, ManyToOne, OneToMany, PrimaryColumn } from "typeorm";
import { newsletterDates } from "./newsletterDates";
import { newsletterRecipients } from "./newsletterRecipients";
import { query } from "../../configuration/query";
@ -14,6 +14,9 @@ export class newsletter {
@Column({ type: "varchar", length: 255, default: "" })
description: string;
@CreateDateColumn()
createdAt: Date;
@Column({ type: "text", default: "" })
newsletterTitle: string;

View file

@ -0,0 +1,21 @@
import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";
import { getTypeByORM, getDefaultByORM } from "./ormHelper";
export class AddDateToNewsletter1748509435932 implements MigrationInterface {
name = "AddDateToNewsletter1748509435932";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.addColumn(
"newsletter",
new TableColumn({
name: "createdAt",
...getTypeByORM("datetime", false, 6),
default: getDefaultByORM("currentTimestamp", 6),
})
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropColumn("newsletter", "createdAt");
}
}

View file

@ -12,6 +12,7 @@ export default abstract class NewsletterService {
return await dataSource
.getRepository(newsletter)
.createQueryBuilder("newsletter")
.orderBy("createdAt", "DESC")
.offset(offset)
.limit(count)
.getManyAndCount()