53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
const prisma = require("./client")
|
|
|
|
function getDb(db) {
|
|
return db || prisma
|
|
}
|
|
|
|
async function upsertDealSave({ userId, dealId, createdAt }, db) {
|
|
const p = getDb(db)
|
|
return p.dealSave.upsert({
|
|
where: { userId_dealId: { userId, dealId } },
|
|
update: {},
|
|
create: {
|
|
userId,
|
|
dealId,
|
|
createdAt: createdAt ?? undefined,
|
|
},
|
|
})
|
|
}
|
|
|
|
async function deleteDealSave({ userId, dealId }, db) {
|
|
const p = getDb(db)
|
|
return p.dealSave.delete({
|
|
where: { userId_dealId: { userId, dealId } },
|
|
})
|
|
}
|
|
|
|
async function findDealSavesByUser(
|
|
userId,
|
|
{ skip = 0, take = 20, include, orderBy, where } = {},
|
|
db
|
|
) {
|
|
const p = getDb(db)
|
|
return p.dealSave.findMany({
|
|
where: where || { userId },
|
|
include: include || undefined,
|
|
orderBy: orderBy || { createdAt: "desc" },
|
|
skip,
|
|
take,
|
|
})
|
|
}
|
|
|
|
async function countDealSavesByUser(userId, { where } = {}, db) {
|
|
const p = getDb(db)
|
|
return p.dealSave.count({ where: where || { userId } })
|
|
}
|
|
|
|
module.exports = {
|
|
upsertDealSave,
|
|
deleteDealSave,
|
|
findDealSavesByUser,
|
|
countDealSavesByUser,
|
|
}
|