import grabSQLUserName from "../../../utils/grab-sql-user-name"; import addDbEntry from "../../backend/db/addDbEntry"; import encrypt from "../../dsql/encrypt"; import dbGrabUserResource from "../db/grab-user-resource"; export default async function handleMariadbUserRecord({ mariadbUser, accessedDatabases, grants, isAllDbsAccess, isAllGrants, user, }) { var _a, _b, _c; const { name: finalMariadbUserName } = grabSQLUserName({ name: mariadbUser.username, user, }); const finalPassword = (_a = mariadbUser.password) === null || _a === void 0 ? void 0 : _a.replace(/ /g, ""); if (!finalPassword) return { msg: `Couldn't get password` }; const encryptedFinalPassword = encrypt({ data: finalPassword }); const finalHost = (_b = mariadbUser.host) === null || _b === void 0 ? void 0 : _b.replace(/ /g, ""); const newMariadbUser = { password: encryptedFinalPassword || undefined, username: finalMariadbUserName, all_databases: isAllDbsAccess ? 1 : 0, all_grants: isAllGrants ? 1 : 0, host: finalHost, user_id: user.id, }; let { single: existingRecord } = await dbGrabUserResource({ tableName: "mariadb_users", userId: user.id, query: { query: { id: { value: String(mariadbUser.id || 0), }, }, }, }); const record = await addDbEntry({ tableName: "mariadb_users", data: newMariadbUser, update: true, duplicateColumnName: "id", duplicateColumnValue: ((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || 0).toString(), }); let { single: updatedRecord } = await dbGrabUserResource({ tableName: "mariadb_users", userId: user.id, query: { query: { id: { value: String((existingRecord === null || existingRecord === void 0 ? void 0 : existingRecord.id) || ((_c = record === null || record === void 0 ? void 0 : record.payload) === null || _c === void 0 ? void 0 : _c.insertId) || 0), }, }, }, }); return { existingRecord, updatedRecord }; }