From 8740f59325da6464cd5026a825ea88031c2bf9da Mon Sep 17 00:00:00 2001 From: kinou-p Date: Mon, 10 Apr 2023 21:22:48 +0200 Subject: [PATCH] connection request from front to back work and set var in db --- backend/src/app.controller.ts | 25 +++++--- backend/src/app.module.ts | 9 ++- backend/src/app.service.ts | 37 +++++++++++ backend/src/config/config.service.ts | 96 ++++------------------------ backend/src/model/base.entity.ts | 55 +++++++++++----- backend/src/model/item.entity.ts | 8 +-- frontend/index.html | 2 +- 7 files changed, 117 insertions(+), 115 deletions(-) diff --git a/backend/src/app.controller.ts b/backend/src/app.controller.ts index 0d6f76a9..b2de3c19 100644 --- a/backend/src/app.controller.ts +++ b/backend/src/app.controller.ts @@ -1,28 +1,37 @@ -import { Controller, Get, Post } from '@nestjs/common'; -import { AppService } from './app.service.js'; +import { Body, Controller, Get, Post } from '@nestjs/common'; +// import { AppService } from './app.service.js'; +import { UsersService } from './app.service.js'; +import { User } from './model/item.entity.js'; + @Controller() export class AppController2 { - constructor(private readonly appService: AppService) {} + constructor(private readonly usersService: UsersService) {} @Get() getHello(): string { - return this.appService.getHello(); + return this.usersService.getHello(); } } @Controller('api') export class AppController { - constructor(private readonly appService: AppService) {} + constructor(private readonly usersService: UsersService) {} +// constructor(private readonly appService: AppService) {} @Get('login') getHello(): string { - return this.appService.getHello(); + return this.usersService.getHello(); } @Post('login') - getHello2(): string { - return "post"; + async create(@Body() user: User) { + return this.usersService.create(user); } + +// @Get('test') +// getHello(): string { +// return this.appService.getHello(); +// } } // "clean": "rm -rf /usr/src/app/src && rm -rf /usr/src/app/model && rm -rf /usr/src/app/config && rm -rf *.ts", \ No newline at end of file diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 6bb11c11..27c8bc3e 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -13,15 +13,18 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller.js'; -import { AppService } from './app.service.js'; +import { AppService, UsersService } from './app.service.js'; +import { User } from './model/item.entity.js'; import { TypeOrmModule } from '@nestjs/typeorm'; import { getTypeOrmConfig } from './config/config.service.js'; @Module({ imports: [ - TypeOrmModule.forRoot(getTypeOrmConfig()) + TypeOrmModule.forRoot(getTypeOrmConfig()), + TypeOrmModule.forFeature([User]), + // TypeOrmModule.forFeature([UserRepository]), ], controllers: [AppController], - providers: [AppService], + providers: [AppService, UsersService], }) export class AppModule { } \ No newline at end of file diff --git a/backend/src/app.service.ts b/backend/src/app.service.ts index 927d7cca..2256f7cc 100644 --- a/backend/src/app.service.ts +++ b/backend/src/app.service.ts @@ -1,4 +1,9 @@ import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { User } from './model/item.entity.js'; +// import { User } from './entity/user.entity'; + @Injectable() export class AppService { @@ -6,3 +11,35 @@ export class AppService { return 'Hello World!'; } } + +@Injectable() +export class UsersService { + constructor( + @InjectRepository(User) private userRepository: Repository, + ) {} +// constructor( +// @InjectRepository(User) +// private usersRepository: Repository, +// ) {} +// constructor( +// @InjectRepository(User) +// private usersRepository: Repository, +// ) {} + // constructor(private usersRepository: Repository) {} + + getHello(): string { + return 'Hello World!'; + } + + async create(user: User): Promise { + return await this.userRepository.save(user); + } + + async findAll(): Promise { + return await this.userRepository.find(); + } + +// async findOne(id: number): Promise { +// return await this.usersRepository.findOne(id); +// } +} \ No newline at end of file diff --git a/backend/src/config/config.service.ts b/backend/src/config/config.service.ts index 02c8f427..a4fb7632 100644 --- a/backend/src/config/config.service.ts +++ b/backend/src/config/config.service.ts @@ -1,86 +1,17 @@ -// // src/config/config.service.ts -// import { TypeOrmModuleOptions } from '@nestjs/typeorm'; - -// require('dotenv').config(); - -// class ConfigService { - -// constructor(private env: { [k: string]: string | undefined }) { } - -// private getValue(key: string, throwOnMissing = true): string { -// const value = this.env[key]; -// if (!value && throwOnMissing) { -// throw new Error(`config error - missing env.${key}`); -// } - -// return value; -// } - -// public ensureValues(keys: string[]) { -// keys.forEach(k => this.getValue(k, true)); -// return this; -// } - -// public getPort() { -// return this.getValue('PORT', true); -// } - -// public isProduction() { -// const mode = this.getValue('MODE', false); -// return mode != 'DEV'; -// } - -// public getTypeOrmConfig(): TypeOrmModuleOptions { -// return { -// type: 'postgres', - -// host: this.getValue('POSTGRES_HOST'), -// port: parseInt(this.getValue('POSTGRES_PORT')), -// username: this.getValue('POSTGRES_USER'), -// password: this.getValue('POSTGRES_PASSWORD'), -// database: this.getValue('POSTGRES_DATABASE'), - -// entities: ['**/*.entity{.ts,.js}'], - -// migrationsTableName: 'migration', - -// migrations: ['src/migration/*.ts'], - -// // cli: { -// // migrationsDir: 'src/migration', -// // }, - -// ssl: this.isProduction(), -// }; -// } - -// } - -// const configService = new ConfigService(process.env) -// .ensureValues([ -// 'POSTGRES_HOST', -// 'POSTGRES_PORT', -// 'POSTGRES_USER', -// 'POSTGRES_PASSWORD', -// 'POSTGRES_DATABASE' -// ]); - -// export { configService }; +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* config.service.ts :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/04/09 14:53:49 by apommier #+# #+# */ +/* Updated: 2023/04/09 14:55:40 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ import { TypeOrmModuleOptions } from '@nestjs/typeorm'; -// require('dotenv').config(); -// class ConfigService { export const getTypeOrmConfig = (): TypeOrmModuleOptions => ({ - // type: 'postgres', - // host: process.env.POSTGRES_HOST, - // port: parseInt(process.env.POSTGRES_PORT, 10), - // username: process.env.POSTGRES_USER, - // password: process.env.POSTGRES_PASSWORD, - // database: process.env.POSTGRES_DATABASE, - // entities: ['**/*.entity{.ts,.js}'], - // migrationsTableName: 'migration', - // migrations: ['src/migration/*.ts'], - // ssl: process.env.MODE !== 'DEV', type: 'postgres', host: 'postgresql', port: 5432, @@ -91,6 +22,5 @@ import { TypeOrmModuleOptions } from '@nestjs/typeorm'; migrationsTableName: 'migration', migrations: ['src/migration/*.ts'], ssl: process.env.MODE !== 'DEV', - }); -// } -// export { ConfigService }; \ No newline at end of file + synchronize: true, + }); \ No newline at end of file diff --git a/backend/src/model/base.entity.ts b/backend/src/model/base.entity.ts index 0a603834..f2eb70fe 100644 --- a/backend/src/model/base.entity.ts +++ b/backend/src/model/base.entity.ts @@ -34,27 +34,50 @@ import { PrimaryGeneratedColumn, Column, UpdateDateColumn, CreateDateColumn } from 'typeorm'; export abstract class BaseEntity { - @PrimaryGeneratedColumn('uuid') - id: string; + // @PrimaryGeneratedColumn('uuid') + // id: string; - @Column({ type: 'boolean', default: true }) - isActive: boolean; + // @Column({ type: 'boolean', default: true }) + // isActive: boolean; - @Column({ type: 'boolean', default: false }) - isArchived: boolean; + // @Column({ type: 'boolean', default: false }) + // isArchived: boolean; - @CreateDateColumn({ type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) - createDateTime: Date; + // @CreateDateColumn({ type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) + // createDateTime: Date; - @Column({ type: 'varchar', length: 300 }) - createdBy: string; + // @Column({ type: 'varchar', length: 300 }) + // createdBy: string; - @UpdateDateColumn({ type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) - lastChangedDateTime: Date; + // @UpdateDateColumn({ type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) + // lastChangedDateTime: Date; - @Column({ type: 'varchar', length: 300 }) - lastChangedBy: string; + // @Column({ type: 'varchar', length: 300 }) + // lastChangedBy: string; - @Column({ type: 'varchar', length: 300, nullable: true }) - internalComment: string | null; + // @Column({ type: 'varchar', length: 300, nullable: true }) + // internalComment: string | null; + @PrimaryGeneratedColumn() + id: number; + + @Column({ nullable: true }) + nickname: string; + + @Column({ nullable: true }) + Password: string; + + @Column({ nullable: true }) + email: string; + + // @Column({ nullable: true }) + // password: string; + + @Column({ default: 0 }) + win: number; + + @Column({ default: 0 }) + loose: number; + + @Column({ default: 0 }) + rank: number; } \ No newline at end of file diff --git a/backend/src/model/item.entity.ts b/backend/src/model/item.entity.ts index 3cd93803..0769e023 100644 --- a/backend/src/model/item.entity.ts +++ b/backend/src/model/item.entity.ts @@ -2,12 +2,12 @@ import { Entity, Column } from 'typeorm'; import { BaseEntity } from './base.entity.js'; -@Entity({ name: 'item' }) -export class Item extends BaseEntity { +@Entity({ name: 'user' }) +export class User extends BaseEntity { - @Column({ type: 'varchar', length: 300 }) + @Column({ type: 'varchar', length: 300 , nullable: true}) name: string; - @Column({ type: 'varchar', length: 300 }) + @Column({ type: 'varchar', length: 300 , nullable: true}) description: string; } \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html index d69faae9..e62c22d9 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -21,7 +21,7 @@

Login Here

- +