44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // @ts-check
 | |
| 
 | |
| const updateDbEntry = require("../../backend/db/updateDbEntry");
 | |
| 
 | |
| /**
 | |
|  * # Update API User Function
 | |
|  *
 | |
|  * @param {object} params
 | |
|  * @param {{ id: string | number } & Object<string, (string | number | null | undefined)>} params.payload
 | |
|  * @param {string} params.dbFullName
 | |
|  *
 | |
|  * @returns {Promise<{ success: boolean, payload: any }>}
 | |
|  */
 | |
| module.exports = async function apiUpdateUser({ payload, dbFullName }) {
 | |
|     const data = (() => {
 | |
|         const reqBodyKeys = Object.keys(payload);
 | |
| 
 | |
|         /** @type {any} */
 | |
|         const finalData = {};
 | |
| 
 | |
|         reqBodyKeys.forEach((key) => {
 | |
|             if (key?.match(/^date_|^id$/)) return;
 | |
|             finalData[key] = payload[key];
 | |
|         });
 | |
| 
 | |
|         return finalData;
 | |
|     })();
 | |
| 
 | |
|     const updateUser = await updateDbEntry({
 | |
|         dbContext: "Dsql User",
 | |
|         paradigm: "Full Access",
 | |
|         dbFullName,
 | |
|         tableName: "users",
 | |
|         identifierColumnName: "id",
 | |
|         identifierValue: payload.id,
 | |
|         data: data,
 | |
|     });
 | |
| 
 | |
|     return {
 | |
|         success: true,
 | |
|         payload: updateUser,
 | |
|     };
 | |
| };
 | 
