diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 94f480d..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0ffaac4..6863d52 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json - +backend/node_modules/ # Env files **/.env **/.env.* diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js deleted file mode 100644 index 259de13..0000000 --- a/backend/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname, - sourceType: 'module', - }, - plugins: ['@typescript-eslint/eslint-plugin'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:prettier/recommended', - ], - root: true, - env: { - node: true, - jest: true, - }, - ignorePatterns: ['.eslintrc.js'], - rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - }, -}; diff --git a/backend/.gitignore b/backend/.gitignore deleted file mode 100644 index f10a3de..0000000 --- a/backend/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# compiled output -/dist -/node_modules - -# Logs -logs -*.log -npm-debug.log* -pnpm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# OS -.DS_Store - -# Tests -/coverage -/.nyc_output - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace \ No newline at end of file diff --git a/backend/nest-cli.json b/backend/nest-cli.json deleted file mode 100644 index f9aa683..0000000 --- a/backend/nest-cli.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/nest-cli", - "collection": "@nestjs/schematics", - "sourceRoot": "src", - "compilerOptions": { - "deleteOutDir": true - } -} diff --git a/backend/src/constants.ts b/backend/src/constants.ts deleted file mode 100644 index 79f62c5..0000000 --- a/backend/src/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const userRep: string = 'USER_REPOSITORY'; -export const dataSource: string = 'DATA_SOURCE'; -export const adminRep: string = 'ADMIN_REPOSITORY'; -export const photoRep: string = 'PHOTO_REPOSITORY'; -export const postRep: string = 'POST_REPOSITORY'; diff --git a/backend/src/db.entity.ts b/backend/src/db.entity.ts deleted file mode 100644 index 836348d..0000000 --- a/backend/src/db.entity.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { v4 as UUID } from 'uuid'; -import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn, CreateDateColumn, PrimaryColumn } from 'typeorm'; - -@Entity() -export class User { - @PrimaryGeneratedColumn() - id: number; - - @Column() - user_name: string; -} - -@Entity() -export class Admin { - @PrimaryGeneratedColumn() - id: number; - - @OneToOne(() => User) - @JoinColumn() - user: User; -} - -@Entity() -export class Post { - @PrimaryColumn('uuid') - uuid: UUID; - - @Column() - posted: boolean; - - @OneToOne(() => User) - @JoinColumn() - from_user: User; - - @Column() - text: string; - - @Column() - media_group_id: string; - - @Column('int', { array: true }) - images: number[]; - - @CreateDateColumn() - timestamp: Date; -} - -@Entity() -export class Photo { - @PrimaryGeneratedColumn() - id: number; - - @OneToOne(() => Post) - @JoinColumn() - post: Post; - - @Column() - text: string; - - @Column() - file_id: string; -} diff --git a/backend/src/db.modules.ts b/backend/src/db.modules.ts deleted file mode 100644 index d84f9bf..0000000 --- a/backend/src/db.modules.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Module } from '@nestjs/common'; -import { databaseProviders } from './db.providers'; - -@Module({ - providers: [...databaseProviders], - exports: [...databaseProviders], -}) -export class DatabaseModule {} diff --git a/backend/src/db.providers.ts b/backend/src/db.providers.ts deleted file mode 100644 index b3a8e1e..0000000 --- a/backend/src/db.providers.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { DataSource } from 'typeorm'; - -export const databaseProviders = [ - { - provide: 'DATA_SOURCE', - useFactory: async () => { - const dataSource = new DataSource({ - type: 'postgres', - host: 'localhost', - port: 15432, - username: 'postgres', - password: 'postgres', - database: 'bot_db', - entities: ['db_models.ts'], - logging: true, - synchronize: true, - }); - - return dataSource.initialize(); - }, - }, -]; diff --git a/backend/src/db_modules/admin.module.ts b/backend/src/db_modules/admin.module.ts deleted file mode 100644 index d97459e..0000000 --- a/backend/src/db_modules/admin.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { DatabaseModule } from 'src/db.modules'; -import { AdminService } from 'src/db_service/admin.service'; -import { adminProviders } from 'src/db_providers/admin.providers'; - -@Module({ - imports: [DatabaseModule], - providers: [...adminProviders, AdminService], -}) -export class PhotoModule {} diff --git a/backend/src/db_modules/photo.module.ts b/backend/src/db_modules/photo.module.ts deleted file mode 100644 index dd59933..0000000 --- a/backend/src/db_modules/photo.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { DatabaseModule } from 'src/db.modules'; -import { photoProviders } from 'src/db_providers/photo.providers'; -import { PhotoService } from 'src/db_service/photo.service'; - -@Module({ - imports: [DatabaseModule], - providers: [...photoProviders, PhotoService], -}) -export class PhotoModule {} diff --git a/backend/src/db_modules/post.module.ts b/backend/src/db_modules/post.module.ts deleted file mode 100644 index 259c30a..0000000 --- a/backend/src/db_modules/post.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { DatabaseModule } from 'src/db.modules'; -import { PostService } from 'src/db_service/post.service'; -import { postProviders } from 'src/db_providers/post.providers'; - -@Module({ - imports: [DatabaseModule], - providers: [...postProviders, PostService], -}) -export class PhotoModule {} diff --git a/backend/src/db_modules/user.module.ts b/backend/src/db_modules/user.module.ts deleted file mode 100644 index f7c7109..0000000 --- a/backend/src/db_modules/user.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { DatabaseModule } from 'src/db.modules'; -import { UserService } from 'src/db_service/user.service'; -import { userProviders } from 'src/db_providers/user.providers'; - -@Module({ - imports: [DatabaseModule], - providers: [...userProviders, UserService], -}) -export class PhotoModule {} diff --git a/backend/src/db_providers/admin.providers.ts b/backend/src/db_providers/admin.providers.ts deleted file mode 100644 index c43d44c..0000000 --- a/backend/src/db_providers/admin.providers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { DataSource } from 'typeorm'; -import { Admin } from '../db.entity'; -import { adminRep, dataSource } from '../constants'; - -export const adminProviders = [ - { - provide: adminRep, - useFactory: (dataSource: DataSource) => dataSource.getRepository(Admin), - inject: [dataSource], - }, -]; diff --git a/backend/src/db_providers/db.providers.ts b/backend/src/db_providers/db.providers.ts deleted file mode 100644 index b3a8e1e..0000000 --- a/backend/src/db_providers/db.providers.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { DataSource } from 'typeorm'; - -export const databaseProviders = [ - { - provide: 'DATA_SOURCE', - useFactory: async () => { - const dataSource = new DataSource({ - type: 'postgres', - host: 'localhost', - port: 15432, - username: 'postgres', - password: 'postgres', - database: 'bot_db', - entities: ['db_models.ts'], - logging: true, - synchronize: true, - }); - - return dataSource.initialize(); - }, - }, -]; diff --git a/backend/src/db_providers/photo.providers.ts b/backend/src/db_providers/photo.providers.ts deleted file mode 100644 index 4d0e324..0000000 --- a/backend/src/db_providers/photo.providers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { DataSource } from 'typeorm'; -import { Photo } from '../db.entity'; -import { photoRep, dataSource } from '../constants'; - -export const photoProviders = [ - { - provide: photoRep, - useFactory: (dataSource: DataSource) => dataSource.getRepository(Photo), - inject: [dataSource], - }, -]; diff --git a/backend/src/db_providers/post.providers.ts b/backend/src/db_providers/post.providers.ts deleted file mode 100644 index d54f4fe..0000000 --- a/backend/src/db_providers/post.providers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { DataSource } from 'typeorm'; -import { Post } from '../db.entity'; -import { postRep, dataSource } from '../constants'; - -export const postProviders = [ - { - provide: postRep, - useFactory: (dataSource: DataSource) => dataSource.getRepository(Post), - inject: [dataSource], - }, -]; diff --git a/backend/src/db_providers/user.providers.ts b/backend/src/db_providers/user.providers.ts deleted file mode 100644 index d4aab51..0000000 --- a/backend/src/db_providers/user.providers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { DataSource } from 'typeorm'; -import { User } from '../db.entity'; -import { userRep, dataSource } from '../constants'; - -export const userProviders = [ - { - provide: userRep, - useFactory: (dataSource: DataSource) => dataSource.getRepository(User), - inject: [dataSource], - }, -]; diff --git a/backend/src/db_service/admin.service.ts b/backend/src/db_service/admin.service.ts deleted file mode 100644 index 12fd26f..0000000 --- a/backend/src/db_service/admin.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Injectable, Inject } from '@nestjs/common'; -import { Repository } from 'typeorm'; -import { Admin } from '../db.entity'; -import { adminRep } from '../constants'; -@Injectable() -export class AdminService { - constructor( - @Inject(adminRep) - private photoRepository: Repository, - ) {} - - async findAll(): Promise { - return this.photoRepository.find(); - } -} diff --git a/backend/src/db_service/photo.service.ts b/backend/src/db_service/photo.service.ts deleted file mode 100644 index 3007a15..0000000 --- a/backend/src/db_service/photo.service.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Injectable, Inject } from '@nestjs/common'; -import { Repository } from 'typeorm'; -import { Photo } from '../db.entity'; -import { photoRep } from '../constants'; - -@Injectable() -export class PhotoService { - constructor( - @Inject(photoRep) - private photoRepository: Repository, - ) {} - - async findAll(): Promise { - return this.photoRepository.find(); - } -} diff --git a/backend/src/db_service/post.service.ts b/backend/src/db_service/post.service.ts deleted file mode 100644 index 3b138de..0000000 --- a/backend/src/db_service/post.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Injectable, Inject } from '@nestjs/common'; -import { Repository } from 'typeorm'; -import { Post } from '../db.entity'; -import { postRep } from '../constants'; -@Injectable() -export class PostService { - constructor( - @Inject(postRep) - private photoRepository: Repository, - ) {} - - async findAll(): Promise { - return this.photoRepository.find(); - } -} diff --git a/backend/src/db_service/user.service.ts b/backend/src/db_service/user.service.ts deleted file mode 100644 index ba56ecb..0000000 --- a/backend/src/db_service/user.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Injectable, Inject } from '@nestjs/common'; -import { Repository } from 'typeorm'; -import { User } from '../db.entity'; -import { userRep } from '../constants'; -@Injectable() -export class UserService { - constructor( - @Inject(userRep) - private photoRepository: Repository, - ) {} - - async findAll(): Promise { - return this.photoRepository.find(); - } -} diff --git a/backend/src/migrations/1700319236842-start.ts b/backend/src/migrations/1700319236842-start.ts deleted file mode 100644 index 0b397bd..0000000 --- a/backend/src/migrations/1700319236842-start.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { MigrationInterface, QueryRunner, Table, TableForeignKey } from 'typeorm'; - -export class Start1700312110383 implements MigrationInterface { - private userTable = new Table({ - name: 'user', - columns: [ - { - name: 'id', - type: 'integer', - isPrimary: true, - }, - { - name: 'name', - type: 'varchar', - length: '255', - isUnique: true, - isNullable: true, - }, - ], - }); - - private adminTable = new Table({ - name: 'admin', - columns: [ - { - name: 'id', - type: 'integer', - isPrimary: true, - }, - ], - }); - - private postTable = new Table({ - name: 'post', - columns: [ - { - name: 'id', - type: 'uuid', - isPrimary: true, - isGenerated: true, - generationStrategy: 'uuid', - }, - { - name: 'posted', - type: 'boolean', - default: false, - }, - { - name: 'from_user_id', - type: 'integer', - isNullable: false, - }, - { - name: 'text', - type: 'varchar', - isNullable: false, - }, - { - name: 'media_group_id', - type: 'varchar', - isNullable: false, - }, - { - name: 'images', - type: 'integer[]', - }, - { - name: 'timestamp', - type: 'timestamptz', - default: 'now()', - }, - ], - }); - - private imageTable = new Table({ - name: 'photo', - columns: [ - { - name: 'message_id', - type: 'integer', - }, - { - name: 'post_id', - type: 'uuid', - isNullable: false, - }, - { - name: 'file_id', - type: 'varchar', - isNullable: false, - }, - { - name: 'has_spoiler', - type: 'boolean', - isNullable: false, - }, - ], - }); - public async up(queryRunner: QueryRunner): Promise { - queryRunner.createTable(this.userTable); - - queryRunner.createTable(this.adminTable); - - queryRunner.createForeignKey( - this.adminTable, - new TableForeignKey({ - columnNames: ['id'], - referencedColumnNames: ['id'], - referencedTableName: 'user', - onDelete: 'CASCADE', - }), - ); - queryRunner.createTable(this.postTable); - - queryRunner.createTable(this.imageTable); - - queryRunner.createForeignKey( - this.imageTable, - new TableForeignKey({ - columnNames: ['post_id'], - referencedColumnNames: ['uuid'], - referencedTableName: 'post', - onDelete: 'CASCADE', - }), - ); - } - - public async down(queryRunner: QueryRunner): Promise { - queryRunner.dropTable(this.imageTable); - queryRunner.dropTable(this.postTable); - queryRunner.dropTable(this.adminTable); - queryRunner.dropTable(this.userTable); - } -} diff --git a/backend/test/app.e2e-spec.ts b/backend/test/app.e2e-spec.ts deleted file mode 100644 index 50cda62..0000000 --- a/backend/test/app.e2e-spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import * as request from 'supertest'; -import { AppModule } from './../src/app.module'; - -describe('AppController (e2e)', () => { - let app: INestApplication; - - beforeEach(async () => { - const moduleFixture: TestingModule = await Test.createTestingModule({ - imports: [AppModule], - }).compile(); - - app = moduleFixture.createNestApplication(); - await app.init(); - }); - - it('/ (GET)', () => { - return request(app.getHttpServer()) - .get('/') - .expect(200) - .expect('Hello World!'); - }); -}); diff --git a/backend/test/jest-e2e.json b/backend/test/jest-e2e.json deleted file mode 100644 index e9d912f..0000000 --- a/backend/test/jest-e2e.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "moduleFileExtensions": ["js", "json", "ts"], - "rootDir": ".", - "testEnvironment": "node", - "testRegex": ".e2e-spec.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - } -} diff --git a/backend/tsconfig.build.json b/backend/tsconfig.build.json deleted file mode 100644 index 64f86c6..0000000 --- a/backend/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] -}