export function updateTodo(
userID: string,
todoToUpdate: TodoUpdate,
): Affected {
const { listID } = mustGetTodo(todoToUpdate.id)
requireAccessToList(listID, userID)
const {
text, complete, sort, id,
} = todoToUpdate
const updateItemStatementQuery = db
.update(item)
.set({
title: sql<string>`'coalesce(${text}, title)'`,
complete: sql<boolean>`'coalesce(${complete}, complete)'`,
ord: sql<number>`'coalesce(${sort}, ord)'`,
rowVersion: sql<number>`'row_version + 1)'`,
lastModified: new Date(),
})
.where(eq(item.id, id))
.prepare()
updateItemStatementQuery.run()
return {
listIDs: [listID],
userIDs: [],
}
}
export function updateTodo(
userID: string,
todoToUpdate: TodoUpdate,
): Affected {
const { listID } = mustGetTodo(todoToUpdate.id)
requireAccessToList(listID, userID)
const {
text, complete, sort, id,
} = todoToUpdate
const updateItemStatementQuery = db
.update(item)
.set({
title: sql<string>`'coalesce(${text}, title)'`,
complete: sql<boolean>`'coalesce(${complete}, complete)'`,
ord: sql<number>`'coalesce(${sort}, ord)'`,
rowVersion: sql<number>`'row_version + 1)'`,
lastModified: new Date(),
})
.where(eq(item.id, id))
.prepare()
updateItemStatementQuery.run()
return {
listIDs: [listID],
userIDs: [],
}
}