From 3b8705e4c7dab0c360f2f551d1af70d2ddbbdc9d Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 23 Oct 2023 14:24:42 +0800 Subject: [PATCH 1/5] Add library items to /admin --- pkg/admin/src/db.ts | 44 ++++++++++++++++++++++++++++++++++++++++++ pkg/admin/src/index.ts | 2 ++ 2 files changed, 46 insertions(+) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index 471ddf9bb..df4f0830c 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -50,6 +50,7 @@ export const registerDatabase = async (secrets: any): Promise => { Group, Integration, Subscription, + LibraryItem, ], }) @@ -308,3 +309,46 @@ export class Subscription extends BaseEntity { @Column({ type: 'timestamp', name: 'updated_at' }) updatedAt!: Date } + +@Entity({ name: 'library_item' }) +export class LibraryItem { + @PrimaryGeneratedColumn('uuid') + id!: string + + @JoinColumn({ name: 'user_id' }) + @ManyToOne(() => User, (user) => user.articles, { eager: true }) + user!: User + + @Column('text') + originalUrl!: string + + @Column('text') + slug!: string + + @Column('text') + title!: string + + @Column('text', { nullable: true }) + author?: string | null + + @Column('text', { nullable: true }) + siteName?: string | null + + @Column('text') + itemType!: string + + @Column('text', { nullable: true }) + subscription?: string | null + + @Column({ type: 'timestamp', name: 'saved_at' }) + savedAt!: Date + + @Column({ type: 'timestamp', name: 'deleted_at' }) + deletedAt?: Date | null + + @Column({ type: 'timestamp', name: 'created_at' }) + createdAt!: Date + + @Column({ type: 'timestamp', name: 'updated_at' }) + updatedAt!: Date +} diff --git a/pkg/admin/src/index.ts b/pkg/admin/src/index.ts index 687ddfb59..543c0d987 100644 --- a/pkg/admin/src/index.ts +++ b/pkg/admin/src/index.ts @@ -12,6 +12,7 @@ import { ContentDisplayReport, Subscription, Integration, + LibraryItem, } from './db' import { compare, hashSync } from 'bcryptjs' const readYamlFile = require('read-yaml-file') @@ -41,6 +42,7 @@ const ADMIN_USER_EMAIL = { resource: Group, options: { parent: { name: 'Users' } } }, { resource: Subscription, options: { parent: { name: 'Users' } } }, { resource: Integration, options: { parent: { name: 'Users' } } }, + { resource: LibraryItem, options: { parent: { name: 'Users' } } }, { resource: ContentDisplayReport, }, From ff2d7fd61704558b2b82049de1616428ad23a18e Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 23 Oct 2023 14:44:49 +0800 Subject: [PATCH 2/5] Extend base entity --- pkg/admin/src/db.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index df4f0830c..e03de3976 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -311,7 +311,7 @@ export class Subscription extends BaseEntity { } @Entity({ name: 'library_item' }) -export class LibraryItem { +export class LibraryItem extends BaseEntity { @PrimaryGeneratedColumn('uuid') id!: string From 801c478381867ac6bb9b822e41c71383bcf45161 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 23 Oct 2023 14:55:50 +0800 Subject: [PATCH 3/5] Fix some columns --- pkg/admin/src/db.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index e03de3976..ea423c2b6 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -319,7 +319,7 @@ export class LibraryItem extends BaseEntity { @ManyToOne(() => User, (user) => user.articles, { eager: true }) user!: User - @Column('text') + @Column({ type: 'text', name: 'original_url' }) originalUrl!: string @Column('text') @@ -331,12 +331,6 @@ export class LibraryItem extends BaseEntity { @Column('text', { nullable: true }) author?: string | null - @Column('text', { nullable: true }) - siteName?: string | null - - @Column('text') - itemType!: string - @Column('text', { nullable: true }) subscription?: string | null From 7fe4fec112bb70f70f14bb7dfa987ec7c5eb33c9 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 23 Oct 2023 15:07:30 +0800 Subject: [PATCH 4/5] Add upload_file --- pkg/admin/src/db.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index ea423c2b6..73eb67bd9 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -334,6 +334,10 @@ export class LibraryItem extends BaseEntity { @Column('text', { nullable: true }) subscription?: string | null + @OneToOne(() => UploadFile, { onDelete: 'CASCADE' }) + @JoinColumn({ name: 'upload_file_id' }) + uploadFile?: UploadFile + @Column({ type: 'timestamp', name: 'saved_at' }) savedAt!: Date @@ -346,3 +350,31 @@ export class LibraryItem extends BaseEntity { @Column({ type: 'timestamp', name: 'updated_at' }) updatedAt!: Date } + +@Entity({ name: 'upload_files' }) +export class UploadFile extends BaseEntity { + @PrimaryGeneratedColumn('uuid') + id!: string + + @JoinColumn({ name: 'user_id' }) + @ManyToOne(() => User, (user) => user.articles, { eager: true }) + user!: User + + @Column('text') + url!: string + + @Column('text') + fileName!: string + + @Column('text') + contentType!: string + + @Column('text') + status!: string + + @Column({ type: 'timestamp', name: 'created_at' }) + createdAt!: Date + + @Column({ type: 'timestamp', name: 'updated_at' }) + updatedAt!: Date +} From a0d186df2f0822fdd4972e8e155dde9e3392e302 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 23 Oct 2023 15:16:15 +0800 Subject: [PATCH 5/5] Add entity mapping --- pkg/admin/src/db.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/admin/src/db.ts b/pkg/admin/src/db.ts index 73eb67bd9..15435dfe5 100644 --- a/pkg/admin/src/db.ts +++ b/pkg/admin/src/db.ts @@ -51,6 +51,7 @@ export const registerDatabase = async (secrets: any): Promise => { Integration, Subscription, LibraryItem, + UploadFile, ], })