1
0
Fork 0
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:
Fedor Katurov 2021-05-04 11:45:20 +07:00
parent c0588acd26
commit c5c3c013ba
5 changed files with 69 additions and 9 deletions

View file

@ -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>;
}

View 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;
}

View 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;
}

View file

@ -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,

View file

@ -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;