users resource

This commit is contained in:
秦秋旭 2023-02-15 20:32:14 +08:00
parent 19e76970a2
commit 3ef5af8667
6 changed files with 81 additions and 0 deletions

View File

@ -28,6 +28,7 @@
"@nestjs/common": "^9.0.0", "@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.1", "@nestjs/config": "^2.3.1",
"@nestjs/core": "^9.0.0", "@nestjs/core": "^9.0.0",
"@nestjs/mapped-types": "^1.2.2",
"@nestjs/platform-express": "^9.0.0", "@nestjs/platform-express": "^9.0.0",
"@prisma/client": "^4.10.1", "@prisma/client": "^4.10.1",
"nestjs-prisma": "^0.20.0", "nestjs-prisma": "^0.20.0",

View File

@ -5,6 +5,7 @@ specifiers:
'@nestjs/common': ^9.0.0 '@nestjs/common': ^9.0.0
'@nestjs/config': ^2.3.1 '@nestjs/config': ^2.3.1
'@nestjs/core': ^9.0.0 '@nestjs/core': ^9.0.0
'@nestjs/mapped-types': ^1.2.2
'@nestjs/platform-express': ^9.0.0 '@nestjs/platform-express': ^9.0.0
'@nestjs/schematics': ^9.0.0 '@nestjs/schematics': ^9.0.0
'@prisma/client': ^4.10.1 '@prisma/client': ^4.10.1
@ -33,6 +34,7 @@ dependencies:
'@nestjs/common': 9.3.9_mnr6j2del53muneqly5h4y27ai '@nestjs/common': 9.3.9_mnr6j2del53muneqly5h4y27ai
'@nestjs/config': 2.3.1_jrq2rdgfp2sx67wmylmrqliwxe '@nestjs/config': 2.3.1_jrq2rdgfp2sx67wmylmrqliwxe
'@nestjs/core': 9.3.9_q6agyr4hwia55oswpsa7zjxcpm '@nestjs/core': 9.3.9_q6agyr4hwia55oswpsa7zjxcpm
'@nestjs/mapped-types': 1.2.2_ilxajbd2e536h4oohar7aljlry
'@nestjs/platform-express': 9.3.9_77foi4w27ghy47yutmnzv7krjy '@nestjs/platform-express': 9.3.9_77foi4w27ghy47yutmnzv7krjy
'@prisma/client': 4.10.1_prisma@4.10.1 '@prisma/client': 4.10.1_prisma@4.10.1
nestjs-prisma: 0.20.0_uhhmeuf5jto6tk72f36tv2cdfe nestjs-prisma: 0.20.0_uhhmeuf5jto6tk72f36tv2cdfe
@ -423,6 +425,23 @@ packages:
- encoding - encoding
dev: false dev: false
/@nestjs/mapped-types/1.2.2_ilxajbd2e536h4oohar7aljlry:
resolution: {integrity: sha512-3dHxLXs3M0GPiriAcCFFJQHoDFUuzTD5w6JDhE7TyfT89YKpe6tcCCIqOZWdXmt9AZjjK30RkHRSFF+QEnWFQg==}
peerDependencies:
'@nestjs/common': ^7.0.8 || ^8.0.0 || ^9.0.0
class-transformer: ^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0
class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0 || ^0.14.0
reflect-metadata: ^0.1.12
peerDependenciesMeta:
class-transformer:
optional: true
class-validator:
optional: true
dependencies:
'@nestjs/common': 9.3.9_mnr6j2del53muneqly5h4y27ai
reflect-metadata: 0.1.13
dev: false
/@nestjs/platform-express/9.3.9_77foi4w27ghy47yutmnzv7krjy: /@nestjs/platform-express/9.3.9_77foi4w27ghy47yutmnzv7krjy:
resolution: {integrity: sha512-f8ja2sYuDGj2QSMmjg05n3WF19wJG5yTiYxRi64nsu5GKL0qLM1LzxNemehkni/knExlvF2bDpbKKpna9nC1JA==} resolution: {integrity: sha512-f8ja2sYuDGj2QSMmjg05n3WF19wJG5yTiYxRi64nsu5GKL0qLM1LzxNemehkni/knExlvF2bDpbKKpna9nC1JA==}
peerDependencies: peerDependencies:

View File

@ -1,6 +1,7 @@
import { Logger, Module } from '@nestjs/common' import { Logger, Module } from '@nestjs/common'
import { ConfigModule } from '@nestjs/config' import { ConfigModule } from '@nestjs/config'
import { PrismaModule, loggingMiddleware } from 'nestjs-prisma' import { PrismaModule, loggingMiddleware } from 'nestjs-prisma'
import { UsersModule } from './users/users.module'
@Module({ @Module({
imports: [ imports: [
@ -16,6 +17,7 @@ import { PrismaModule, loggingMiddleware } from 'nestjs-prisma'
], ],
}, },
}), }),
UsersModule,
], ],
controllers: [], controllers: [],
providers: [], providers: [],

View File

@ -0,0 +1,24 @@
import { Controller, Get, Post, Body, Param } from '@nestjs/common'
import { UsersService } from './users.service'
@Controller()
export class UsersController {
constructor(private readonly userService: UsersService) {}
@Get('users')
async findUsers() {
return this.userService.findUsers()
}
@Get('users/:id')
async getUserInfo(@Param('id') id: string) {
return this.userService.getUserInfo(id)
}
@Post('users')
async createUser(
@Body() userData: { email: string; password: string; username?: string },
) {
return this.userService.createUser(userData)
}
}

View File

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

View File

@ -0,0 +1,26 @@
import { Injectable } from '@nestjs/common'
import { PrismaService } from 'nestjs-prisma'
import { Prisma } from '@prisma/client'
@Injectable()
export class UsersService {
constructor(private prisma: PrismaService) {}
async findUsers() {
return this.prisma.user.findMany()
}
async getUserInfo(id: string) {
return this.prisma.user.findUnique({
where: {
id,
},
})
}
async createUser(data: Prisma.UserCreateInput) {
return this.prisma.user.create({
data,
})
}
}