mirror of
https://github.com/muerwre/vk-tg-bot.git
synced 2025-04-24 22:46:41 +07:00
#4 added typeorm entities for likes and events
This commit is contained in:
parent
c0588acd26
commit
c5c3c013ba
5 changed files with 69 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
|||
import { VkEvent } from "../vk/types";
|
||||
import { Event, Like } from "./types";
|
||||
import { StoredEvent, StoredLike } from "./types";
|
||||
|
||||
export interface Storage {
|
||||
getEvent(
|
||||
|
@ -7,11 +7,15 @@ export interface Storage {
|
|||
id: number,
|
||||
groupId: number,
|
||||
channel: string
|
||||
): Promise<Event>;
|
||||
): Promise<StoredEvent>;
|
||||
|
||||
createEvent(event: Event): Promise<Event>;
|
||||
createEvent(event: StoredEvent): Promise<StoredEvent>;
|
||||
|
||||
getLikesFor(channel: string, messageId: number): Promise<Like[]>;
|
||||
getLikesFor(channel: string, messageId: number): Promise<StoredLike[]>;
|
||||
|
||||
getLikeBy(channel: string, messageId: number, author: number): Promise<Like>;
|
||||
getLikeBy(
|
||||
channel: string,
|
||||
messageId: number,
|
||||
author: number
|
||||
): Promise<StoredLike>;
|
||||
}
|
||||
|
|
27
src/service/db/postgres/entities/Event.ts
Normal file
27
src/service/db/postgres/entities/Event.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from "typeorm";
|
||||
import { StoredEvent } from "../../types";
|
||||
import { VkEvent } from "../../../vk/types";
|
||||
|
||||
@Entity()
|
||||
export class Event implements StoredEvent {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number;
|
||||
@Column()
|
||||
type: VkEvent;
|
||||
@Column()
|
||||
groupId: number;
|
||||
@Column()
|
||||
channel: string;
|
||||
@Column()
|
||||
tgMessageId: number;
|
||||
@CreateDateColumn()
|
||||
createdAt: Date;
|
||||
@UpdateDateColumn()
|
||||
updatedAt: Date;
|
||||
}
|
26
src/service/db/postgres/entities/Like.ts
Normal file
26
src/service/db/postgres/entities/Like.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from "typeorm";
|
||||
import { StoredLike } from "../../types";
|
||||
|
||||
@Entity()
|
||||
class Like implements StoredLike {
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number;
|
||||
@Column()
|
||||
messageId: number;
|
||||
@Column()
|
||||
channel: string;
|
||||
@Column({ type: "text" })
|
||||
text: string;
|
||||
@Column()
|
||||
author: number;
|
||||
@CreateDateColumn()
|
||||
createdAt: Date;
|
||||
@UpdateDateColumn()
|
||||
updatedAt: Date;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
import { Storage } from "../index";
|
||||
import { VkEvent } from "../../vk/types";
|
||||
import { Event } from "../types";
|
||||
import { StoredEvent } from "../types";
|
||||
import { PostgresConfig } from "./types";
|
||||
import { Connection, createConnection } from "typeorm";
|
||||
|
||||
|
@ -12,6 +12,7 @@ export class PostgresDB implements Storage {
|
|||
this.connection = await createConnection({
|
||||
type: "postgres",
|
||||
url: this.config.uri,
|
||||
entities: ["./entities/*.ts"],
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -32,11 +33,12 @@ export class PostgresDB implements Storage {
|
|||
};
|
||||
};
|
||||
|
||||
createEvent = async (event: Event) => event;
|
||||
createEvent = async (event: StoredEvent) => event;
|
||||
|
||||
getLikesFor = async (channel: string, messageId: number) => [];
|
||||
|
||||
getLikeBy = async (channel: string, messageId: number, author: number) => ({
|
||||
id: 0,
|
||||
channel,
|
||||
messageId,
|
||||
author,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { VkEvent } from "../vk/types";
|
||||
|
||||
export interface Event {
|
||||
export interface StoredEvent {
|
||||
type: VkEvent;
|
||||
id: number;
|
||||
groupId: number;
|
||||
|
@ -10,7 +10,8 @@ export interface Event {
|
|||
updatedAt: Date;
|
||||
}
|
||||
|
||||
export interface Like {
|
||||
export interface StoredLike {
|
||||
id: number;
|
||||
messageId: number;
|
||||
channel: string;
|
||||
text: string;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue