From 8598f332ca9da3e959f31ed8b05b762a5975bd7b Mon Sep 17 00:00:00 2001 From: zarsa Date: Sun, 4 Jun 2023 13:05:34 +0430 Subject: [PATCH] add entities and some cruds --- src/entities/group.entity.ts | 12 ++++++++ src/entities/person.entity.ts | 27 ++++++++++++++++++ src/entities/point-type.entity.ts | 9 ++++++ src/entities/point.entity.ts | 14 ++++++++++ src/entities/user.entity.ts | 15 ++++++++++ src/groups/dto/create-group.dto.ts | 1 + src/groups/dto/update-group.dto.ts | 4 +++ src/groups/groups.controller.ts | 34 ++++++++++++++++++++++ src/groups/groups.module.ts | 9 ++++++ src/groups/groups.service.ts | 26 +++++++++++++++++ src/persons/dto/create-person.dto.ts | 1 + src/persons/dto/update-person.dto.ts | 4 +++ src/persons/persons.controller.ts | 34 ++++++++++++++++++++++ src/persons/persons.module.ts | 9 ++++++ src/persons/persons.service.ts | 26 +++++++++++++++++ src/users/dto/create-user.dto.ts | 1 + src/users/dto/update-user.dto.ts | 4 +++ src/users/users.controller.ts | 42 ++++++++++++++++++++++++++++ src/users/users.module.ts | 9 ++++++ src/users/users.service.ts | 26 +++++++++++++++++ 20 files changed, 307 insertions(+) create mode 100644 src/entities/group.entity.ts create mode 100644 src/entities/person.entity.ts create mode 100644 src/entities/point-type.entity.ts create mode 100644 src/entities/point.entity.ts create mode 100644 src/entities/user.entity.ts create mode 100644 src/groups/dto/create-group.dto.ts create mode 100644 src/groups/dto/update-group.dto.ts create mode 100644 src/groups/groups.controller.ts create mode 100644 src/groups/groups.module.ts create mode 100644 src/groups/groups.service.ts create mode 100644 src/persons/dto/create-person.dto.ts create mode 100644 src/persons/dto/update-person.dto.ts create mode 100644 src/persons/persons.controller.ts create mode 100644 src/persons/persons.module.ts create mode 100644 src/persons/persons.service.ts create mode 100644 src/users/dto/create-user.dto.ts create mode 100644 src/users/dto/update-user.dto.ts create mode 100644 src/users/users.controller.ts create mode 100644 src/users/users.module.ts create mode 100644 src/users/users.service.ts diff --git a/src/entities/group.entity.ts b/src/entities/group.entity.ts new file mode 100644 index 0000000..6f937cb --- /dev/null +++ b/src/entities/group.entity.ts @@ -0,0 +1,12 @@ +import { Column, Entity, ManyToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Person } from './person.entity'; + +@Entity() +export class Group { + @PrimaryGeneratedColumn() + id: number; + @Column('nvarchar') + name: string; + @ManyToMany(() => Person, (person) => person.groups) + persons: Person[]; +} diff --git a/src/entities/person.entity.ts b/src/entities/person.entity.ts new file mode 100644 index 0000000..6e3b36c --- /dev/null +++ b/src/entities/person.entity.ts @@ -0,0 +1,27 @@ +import { + Column, + Entity, + JoinTable, + ManyToMany, + OneToMany, + PrimaryGeneratedColumn, +} from 'typeorm'; +import { Point } from './point.entity'; +import { Group } from './group.entity'; + +@Entity() +export class Person { + @PrimaryGeneratedColumn() + id: number; + @Column({ length: 25, type: 'nvarchar' }) + firstName: string; + @Column({ length: 25, type: 'nvarchar' }) + lastName: string; + @Column('int') + phoneNumber: number; + @OneToMany(() => Point, (point) => point.person) + points: Point[]; + @ManyToMany(() => Group, (group) => group.persons) + @JoinTable() + groups: Group[]; +} diff --git a/src/entities/point-type.entity.ts b/src/entities/point-type.entity.ts new file mode 100644 index 0000000..4539861 --- /dev/null +++ b/src/entities/point-type.entity.ts @@ -0,0 +1,9 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +@Entity() +export class PointType { + @PrimaryColumn() + code: number; + @Column({ length: 25, type: 'nvarchar' }) + name: string; +} diff --git a/src/entities/point.entity.ts b/src/entities/point.entity.ts new file mode 100644 index 0000000..1813032 --- /dev/null +++ b/src/entities/point.entity.ts @@ -0,0 +1,14 @@ +import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; +import { Person } from './person.entity'; + +@Entity() +export class Point { + @PrimaryGeneratedColumn() + id: number; + @Column('text') + desc: string; + @Column('int') + numOf: number; + @ManyToOne(() => Person, (person) => person.points) + person: Person; +} diff --git a/src/entities/user.entity.ts b/src/entities/user.entity.ts new file mode 100644 index 0000000..c744336 --- /dev/null +++ b/src/entities/user.entity.ts @@ -0,0 +1,15 @@ +import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; + +@Entity() +export class User { + @PrimaryGeneratedColumn() + id: number; + @Column({ length: 25, type: 'nvarchar' }) + firstName: string; + @Column({ length: 25, type: 'nvarchar' }) + lastName: string; + @Column({ length: 25 }) + username: string; + @Column({ length: 25 }) + password: string; +} diff --git a/src/groups/dto/create-group.dto.ts b/src/groups/dto/create-group.dto.ts new file mode 100644 index 0000000..742fac5 --- /dev/null +++ b/src/groups/dto/create-group.dto.ts @@ -0,0 +1 @@ +export class CreateGroupDto {} diff --git a/src/groups/dto/update-group.dto.ts b/src/groups/dto/update-group.dto.ts new file mode 100644 index 0000000..ddaa1b0 --- /dev/null +++ b/src/groups/dto/update-group.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateGroupDto } from './create-group.dto'; + +export class UpdateGroupDto extends PartialType(CreateGroupDto) {} diff --git a/src/groups/groups.controller.ts b/src/groups/groups.controller.ts new file mode 100644 index 0000000..ea3a7f3 --- /dev/null +++ b/src/groups/groups.controller.ts @@ -0,0 +1,34 @@ +import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { GroupsService } from './groups.service'; +import { CreateGroupDto } from './dto/create-group.dto'; +import { UpdateGroupDto } from './dto/update-group.dto'; + +@Controller('groups') +export class GroupsController { + constructor(private readonly groupsService: GroupsService) {} + + @Post() + create(@Body() createGroupDto: CreateGroupDto) { + return this.groupsService.create(createGroupDto); + } + + @Get() + findAll() { + return this.groupsService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.groupsService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() updateGroupDto: UpdateGroupDto) { + return this.groupsService.update(+id, updateGroupDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.groupsService.remove(+id); + } +} diff --git a/src/groups/groups.module.ts b/src/groups/groups.module.ts new file mode 100644 index 0000000..6ee7cdf --- /dev/null +++ b/src/groups/groups.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { GroupsService } from './groups.service'; +import { GroupsController } from './groups.controller'; + +@Module({ + controllers: [GroupsController], + providers: [GroupsService] +}) +export class GroupsModule {} diff --git a/src/groups/groups.service.ts b/src/groups/groups.service.ts new file mode 100644 index 0000000..00fd277 --- /dev/null +++ b/src/groups/groups.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateGroupDto } from './dto/create-group.dto'; +import { UpdateGroupDto } from './dto/update-group.dto'; + +@Injectable() +export class GroupsService { + create(createGroupDto: CreateGroupDto) { + return 'This action adds a new group'; + } + + findAll() { + return `This action returns all groups`; + } + + findOne(id: number) { + return `This action returns a #${id} group`; + } + + update(id: number, updateGroupDto: UpdateGroupDto) { + return `This action updates a #${id} group`; + } + + remove(id: number) { + return `This action removes a #${id} group`; + } +} diff --git a/src/persons/dto/create-person.dto.ts b/src/persons/dto/create-person.dto.ts new file mode 100644 index 0000000..b8f9c7b --- /dev/null +++ b/src/persons/dto/create-person.dto.ts @@ -0,0 +1 @@ +export class CreatePersonDto {} diff --git a/src/persons/dto/update-person.dto.ts b/src/persons/dto/update-person.dto.ts new file mode 100644 index 0000000..85e97b5 --- /dev/null +++ b/src/persons/dto/update-person.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreatePersonDto } from './create-person.dto'; + +export class UpdatePersonDto extends PartialType(CreatePersonDto) {} diff --git a/src/persons/persons.controller.ts b/src/persons/persons.controller.ts new file mode 100644 index 0000000..92b028d --- /dev/null +++ b/src/persons/persons.controller.ts @@ -0,0 +1,34 @@ +import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { PersonsService } from './persons.service'; +import { CreatePersonDto } from './dto/create-person.dto'; +import { UpdatePersonDto } from './dto/update-person.dto'; + +@Controller('persons') +export class PersonsController { + constructor(private readonly personsService: PersonsService) {} + + @Post() + create(@Body() createPersonDto: CreatePersonDto) { + return this.personsService.create(createPersonDto); + } + + @Get() + findAll() { + return this.personsService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.personsService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() updatePersonDto: UpdatePersonDto) { + return this.personsService.update(+id, updatePersonDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.personsService.remove(+id); + } +} diff --git a/src/persons/persons.module.ts b/src/persons/persons.module.ts new file mode 100644 index 0000000..7810fd6 --- /dev/null +++ b/src/persons/persons.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { PersonsService } from './persons.service'; +import { PersonsController } from './persons.controller'; + +@Module({ + controllers: [PersonsController], + providers: [PersonsService] +}) +export class PersonsModule {} diff --git a/src/persons/persons.service.ts b/src/persons/persons.service.ts new file mode 100644 index 0000000..1e2c8cc --- /dev/null +++ b/src/persons/persons.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreatePersonDto } from './dto/create-person.dto'; +import { UpdatePersonDto } from './dto/update-person.dto'; + +@Injectable() +export class PersonsService { + create(createPersonDto: CreatePersonDto) { + return 'This action adds a new person'; + } + + findAll() { + return `This action returns all persons`; + } + + findOne(id: number) { + return `This action returns a #${id} person`; + } + + update(id: number, updatePersonDto: UpdatePersonDto) { + return `This action updates a #${id} person`; + } + + remove(id: number) { + return `This action removes a #${id} person`; + } +} diff --git a/src/users/dto/create-user.dto.ts b/src/users/dto/create-user.dto.ts new file mode 100644 index 0000000..0311be1 --- /dev/null +++ b/src/users/dto/create-user.dto.ts @@ -0,0 +1 @@ +export class CreateUserDto {} diff --git a/src/users/dto/update-user.dto.ts b/src/users/dto/update-user.dto.ts new file mode 100644 index 0000000..dfd37fb --- /dev/null +++ b/src/users/dto/update-user.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateUserDto } from './create-user.dto'; + +export class UpdateUserDto extends PartialType(CreateUserDto) {} diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts new file mode 100644 index 0000000..d5db3a6 --- /dev/null +++ b/src/users/users.controller.ts @@ -0,0 +1,42 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { UsersService } from './users.service'; +import { CreateUserDto } from './dto/create-user.dto'; +import { UpdateUserDto } from './dto/update-user.dto'; + +@Controller('users') +export class UsersController { + constructor(private readonly usersService: UsersService) {} + + @Post() + create(@Body() createUserDto: CreateUserDto) { + return this.usersService.create(createUserDto); + } + + @Get() + findAll() { + return this.usersService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.usersService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) { + return this.usersService.update(+id, updateUserDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.usersService.remove(+id); + } +} diff --git a/src/users/users.module.ts b/src/users/users.module.ts new file mode 100644 index 0000000..51f12f0 --- /dev/null +++ b/src/users/users.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { UsersService } from './users.service'; +import { UsersController } from './users.controller'; + +@Module({ + controllers: [UsersController], + providers: [UsersService] +}) +export class UsersModule {} diff --git a/src/users/users.service.ts b/src/users/users.service.ts new file mode 100644 index 0000000..0a55903 --- /dev/null +++ b/src/users/users.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateUserDto } from './dto/create-user.dto'; +import { UpdateUserDto } from './dto/update-user.dto'; + +@Injectable() +export class UsersService { + create(createUserDto: CreateUserDto) { + return 'This action adds a new user'; + } + + findAll() { + return `This action returns all users`; + } + + findOne(id: number) { + return `This action returns a #${id} user`; + } + + update(id: number, updateUserDto: UpdateUserDto) { + return `This action updates a #${id} user`; + } + + remove(id: number) { + return `This action removes a #${id} user`; + } +}