From 849adf84d475487db7019d0151feb86e1242bf1f Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 27 May 2022 10:41:29 +0800 Subject: [PATCH] Add entity class --- packages/api/src/entity/api_key.ts | 37 ++++++++++++++++++++ packages/db/migrations/0084.do.api_key.sql | 18 ++++++++++ packages/db/migrations/0084.undo.api_key.sql | 9 +++++ 3 files changed, 64 insertions(+) create mode 100644 packages/api/src/entity/api_key.ts create mode 100755 packages/db/migrations/0084.do.api_key.sql create mode 100755 packages/db/migrations/0084.undo.api_key.sql diff --git a/packages/api/src/entity/api_key.ts b/packages/api/src/entity/api_key.ts new file mode 100644 index 000000000..b4170de91 --- /dev/null +++ b/packages/api/src/entity/api_key.ts @@ -0,0 +1,37 @@ +import { + Column, + CreateDateColumn, + Entity, + JoinColumn, + ManyToOne, + PrimaryGeneratedColumn, +} from 'typeorm' +import { User } from './user' + +@Entity() +export class ApiKey { + @PrimaryGeneratedColumn('uuid') + id!: string + + @ManyToOne(() => User, { onDelete: 'CASCADE' }) + @JoinColumn({ name: 'user_id' }) + user!: User + + @Column('text') + name!: string + + @Column('text') + key!: string + + @Column('text', { array: true }) + scopes?: string[] + + @CreateDateColumn() + createdAt!: Date + + @Column('date') + expiresAt!: Date + + @Column('date', { nullable: true }) + usedAt!: Date | null +} diff --git a/packages/db/migrations/0084.do.api_key.sql b/packages/db/migrations/0084.do.api_key.sql new file mode 100755 index 000000000..6a9cf296b --- /dev/null +++ b/packages/db/migrations/0084.do.api_key.sql @@ -0,0 +1,18 @@ +-- Type: DO +-- Name: api_key +-- Description: api_key model + +BEGIN; + +CREATE TABLE omnivore.api_key ( + id uuid PRIMARY KEY DEFAULT uuid_generate_v1mc(), + user_id uuid NOT NULL REFERENCES omnivore.user (id) ON DELETE CASCADE, + name text NOT NULL, + key text NOT NULL, + scopes text[] NOT NULL DEFAULT '{}', + expires_at timestamptz NOT NULL, + created_at timestamptz NOT NULL DEFAULT current_timestamp, + used_at timestamptz +); + +COMMIT; diff --git a/packages/db/migrations/0084.undo.api_key.sql b/packages/db/migrations/0084.undo.api_key.sql new file mode 100755 index 000000000..788fd4ca9 --- /dev/null +++ b/packages/db/migrations/0084.undo.api_key.sql @@ -0,0 +1,9 @@ +-- Type: UNDO +-- Name: api_key +-- Description: api_key model + +BEGIN; + +DROP TABLE omnivore.api_key; + +COMMIT;