i’m using prisma and typescript, and i want to sort role in a table, but when i sort the role, the console will put error like this
`Argument user_roles: Got invalid value ‘asc’ on prisma.findManymme_user. Provided String, expected mme_user_roleOrderByRelationAggregateInput:
type mme_user_roleOrderByRelationAggregateInput {
_count?: SortOrder
}
here’s my code
export async function getUser({ skip, limit, pageSize, search, sortBy }: { skip: number, limit: number, pageSize: number, search: string, sortBy: { id: string, desc: boolean }[] }): Promise<any> {
const sorting: { [key: string]: string }[] = sortBy.length > 0 ? sortBy.map((sort: any) => {
if (sort.id.includes('.')){
const idArr = sort.id.split('.')
let nestedSort: any = { [idArr[idArr.length-1]]: sort.desc ? 'desc' : 'asc' }
idArr.reverse().forEach((id: string, index: number) => {
if(index > 0){
nestedSort = { [id]: nestedSort }
}
})
return nestedSort
}
return { [sort.id]: sort.desc ? 'desc' : 'asc' }
}) : [{ userid: 'asc' }]
console.log('sorting', JSON.stringify(sorting, null, 2));
console.log('sortby', JSON.stringify(sortBy, null, 2));
const filter = [
{
userid: {
contains: search
},
},
{
nama: {
contains: search
},
},
{
role: {
contains: search
},
},
{
email: {
contains: search
},
},
]
return prisma.mme_user.findMany({
skip,
take: Number(pageSize) < Number(limit) ? Number(pageSize) : Number(limit),
include: {
user_roles: {
include: {
role: true
}
}
},
where: {
is_deleted: 0,
OR: filter
},
orderBy: sorting
})
}
my prisma schema looks like this
model mme_role {
id Int @id @default(autoincrement())
name String @unique @db.VarChar(255)
privileges mme_privilege[]
user_roles mme_user_role[]
}
model mme_user_role {
id Int @id @default(autoincrement())
user_id Int
user mme_user @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
role_id Int
role mme_role @relation(fields: [role_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
}
model mme_user {
id Int @id @default(autoincrement())
userid String @unique(map: "idxUser") @db.VarChar(25)
passwd String @db.VarChar(250)
nama String @db.VarChar(50)
role String @db.VarChar(15)
email String @db.VarChar(250)
created_at DateTime @db.DateTime(0)
last_updated DateTime @db.DateTime(0)
is_deleted Int @default(0) @db.UnsignedTinyInt
deleted_at DateTime? @db.DateTime(0)
logged_in Int @default(0) @db.UnsignedTinyInt
activities mme_activity[]
notifications mme_notification[]
product_price_list mme_product_price_list[]
user_roles mme_user_role[]
@@index([is_deleted], map: "mme_user_is_deleted")
}
i already try _count to sort the data, but i want to sort it alphabetically
Aryagara Kristandy is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.