import updateDbEntry from "../../backend/db/updateDbEntry"; import hashPassword from "../../dsql/hashPassword"; import dbHandler from "../../backend/dbHandler"; import { APIResponseObject, ResetPasswordParams } from "../../../types"; import grabDbFullName from "../../../utils/grab-db-full-name"; import { DSQL_DATASQUIREL_USERS } from "../../../types/dsql"; /** * # Update API User Function */ export default async function apiResetUserPassword({ updatedUserId, database, dbUserId, newPassword, encryptionKey, }: ResetPasswordParams): Promise { const dbFullName = grabDbFullName({ dbName: database, userId: dbUserId }); const existingUserQuery = `SELECT * FROM users WHERE id = ?`; const existingUserValues = [updatedUserId]; const existingUser = (await dbHandler({ query: existingUserQuery, values: existingUserValues, database: dbFullName, })) as any[]; if (!existingUser?.[0]) { return { success: false, msg: "User not found", }; } const newPasswordHashed = hashPassword({ password: newPassword, encryptionKey, }); const updateUser = await updateDbEntry({ dbFullName, tableName: "users", identifierColumnName: "id", identifierValue: updatedUserId, data: { password: newPasswordHashed }, }); return { success: true, payload: updateUser, }; }