첫번째 수정..

This commit is contained in:
최준흠 2022-08-19 19:20:38 +09:00
parent f6ab0f234c
commit fb2102168f
3 changed files with 34 additions and 12 deletions

View File

@ -3,7 +3,6 @@
generator client {
provider = "prisma-client-js"
previewFeatures = ["interactiveTransactions"]
}
//데이터베이스 연동

View File

@ -23,14 +23,32 @@ export class TodoController {
constructor(private readonly todoService: TodoService) {}
@Get()
async fetchAll(@Query() query): Promise<Todo[]> {
const take: number = isNaN(query.per_page)
async fetchAll(@Query() query): Promise<{}> {
//쿼리값 변경
const per_page: number = isNaN(query.per_page)
? Number(env.DEFAULT_TABLE_PER_PAGE)
: Number(query.per_page)
const skip: number = isNaN(query.page)
const page: number = isNaN(query.page)
? Number(env.DEFAULT_TABLE_PAGE)
: Number(query.page) * take
const search = query.searchString
: Number(query.page)
const searchString: string = isNaN(query.searchString)
? ''
: String(query.searchString)
//리턴 할 데이터
const datas = {
query: {
page: page,
per_page: per_page,
searchString: searchString
},
total: 0,
rows: []
}
datas.total = await this.todoService.count()
//Sql용
const searchSql = query.searchString
? {
OR: [
{ title: { contains: query.searchString as string } },
@ -38,18 +56,19 @@ export class TodoController {
]
}
: {}
const sql = {
take: take,
skip: skip,
take: per_page,
skip: page,
where: {
//is_done: true,
...search
...searchSql
},
orderBy: { id: 'desc' }
}
//console.log(query)
//console.log(sql)
return this.todoService.fetchAll(sql)
datas.rows = await this.todoService.fetchAll(sql)
//console.log(datas)
return datas
}
@HasRoles(Role.USER)

View File

@ -5,10 +5,14 @@ import { TodoDTO } from './dtos/todo.dto'
@Injectable()
export class TodoService {
todo: any
constructor(private prismaService: PrismaService) {}
//참고: https://intrepidgeeks.com/tutorial/05-instagram-clone-code-5-user-summary
//전체조회
async count(): Promise<number> {
return this.prismaService.todo.count()
}
async fetchAll(sql: any): Promise<Todo[]> {
return this.prismaService.todo.findMany(sql)
}