|
|
const prisma = require("../utils/prisma"); |
|
|
|
|
|
const WorkspaceUser = { |
|
|
createMany: async function (userId, workspaceIds = []) { |
|
|
if (workspaceIds.length === 0) return; |
|
|
try { |
|
|
await prisma.$transaction( |
|
|
workspaceIds.map((workspaceId) => |
|
|
prisma.workspace_users.create({ |
|
|
data: { user_id: userId, workspace_id: workspaceId }, |
|
|
}) |
|
|
) |
|
|
); |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
} |
|
|
return; |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
createManyUsers: async function (userIds = [], workspaceId) { |
|
|
if (userIds.length === 0) return; |
|
|
try { |
|
|
await prisma.$transaction( |
|
|
userIds.map((userId) => |
|
|
prisma.workspace_users.create({ |
|
|
data: { |
|
|
user_id: Number(userId), |
|
|
workspace_id: Number(workspaceId), |
|
|
}, |
|
|
}) |
|
|
) |
|
|
); |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
} |
|
|
return; |
|
|
}, |
|
|
|
|
|
create: async function (userId = 0, workspaceId = 0) { |
|
|
try { |
|
|
await prisma.workspace_users.create({ |
|
|
data: { user_id: Number(userId), workspace_id: Number(workspaceId) }, |
|
|
}); |
|
|
return true; |
|
|
} catch (error) { |
|
|
console.error( |
|
|
"FAILED TO CREATE WORKSPACE_USER RELATIONSHIP.", |
|
|
error.message |
|
|
); |
|
|
return false; |
|
|
} |
|
|
}, |
|
|
|
|
|
get: async function (clause = {}) { |
|
|
try { |
|
|
const result = await prisma.workspace_users.findFirst({ where: clause }); |
|
|
return result || null; |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
return null; |
|
|
} |
|
|
}, |
|
|
|
|
|
where: async function (clause = {}, limit = null) { |
|
|
try { |
|
|
const results = await prisma.workspace_users.findMany({ |
|
|
where: clause, |
|
|
...(limit !== null ? { take: limit } : {}), |
|
|
}); |
|
|
return results; |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
return []; |
|
|
} |
|
|
}, |
|
|
|
|
|
count: async function (clause = {}) { |
|
|
try { |
|
|
const count = await prisma.workspace_users.count({ where: clause }); |
|
|
return count; |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
return 0; |
|
|
} |
|
|
}, |
|
|
|
|
|
delete: async function (clause = {}) { |
|
|
try { |
|
|
await prisma.workspace_users.deleteMany({ where: clause }); |
|
|
} catch (error) { |
|
|
console.error(error.message); |
|
|
} |
|
|
return; |
|
|
}, |
|
|
}; |
|
|
|
|
|
module.exports.WorkspaceUser = WorkspaceUser; |
|
|
|