A self hosted solution for privately rating and reviewing different sorts of media
at master 35 lines 671 B view raw
1import prisma from '@/server/db'; 2import { UserList } from '@prisma/client'; 3import 'server-only'; 4 5/** 6 * 7 * @returns {number} Returns the largest order number in the list + 1 8 */ 9export const normalizeOrderInList = async ( 10 userList: UserList 11): Promise<number> => { 12 const listEntries = ( 13 await prisma.userListEntry.findMany({ 14 where: { 15 listId: userList.id, 16 }, 17 }) 18 ).sort((a, b) => a.order - b.order); 19 20 let idx = 0; 21 for (const listEntry of listEntries) { 22 await prisma.userListEntry.update({ 23 where: { 24 id: listEntry.id, 25 }, 26 data: { 27 order: idx, 28 }, 29 }); 30 31 idx++; 32 } 33 34 return idx + 1; 35};