55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
|
// @ts-check
|
||
|
|
||
|
const grabSchemaFieldsFromData = require("./grabSchemaFieldsFromData");
|
||
|
const serverError = require("./serverError");
|
||
|
|
||
|
/**
|
||
|
* # Add User Table to Database
|
||
|
*
|
||
|
* @param {object} [params]
|
||
|
* @param {Object<string,any>} [params.payload] - fields to add to the table
|
||
|
*
|
||
|
* @returns {import("../../types").DSQL_TableSchemaType | null} new user auth object payload
|
||
|
*/
|
||
|
module.exports = function grabNewUsersTableSchema(params) {
|
||
|
try {
|
||
|
/** @type {import("../../types").DSQL_TableSchemaType} */
|
||
|
const userPreset = require("../../data/presets/users.json");
|
||
|
/** @type {import("../../types").DSQL_FieldSchemaType[]} */
|
||
|
const defaultFields = require("../../data/defaultFields.json");
|
||
|
|
||
|
const supplementalFields = params?.payload
|
||
|
? grabSchemaFieldsFromData({
|
||
|
data: params?.payload,
|
||
|
excludeData: defaultFields,
|
||
|
excludeFields: userPreset.fields,
|
||
|
})
|
||
|
: [];
|
||
|
|
||
|
console.log("supplementalFields", supplementalFields);
|
||
|
|
||
|
const allFields = [...userPreset.fields, ...supplementalFields];
|
||
|
|
||
|
console.log("allFields", allFields);
|
||
|
|
||
|
const finalFields = [
|
||
|
...defaultFields.slice(0, 2),
|
||
|
...allFields,
|
||
|
...defaultFields.slice(2),
|
||
|
];
|
||
|
|
||
|
userPreset.fields = [...finalFields];
|
||
|
|
||
|
return userPreset;
|
||
|
} catch (/** @type {any} */ error) {
|
||
|
console.log(`grabNewUsersTableSchema.js ERROR: ${error.message}`);
|
||
|
|
||
|
serverError({
|
||
|
component: "grabNewUsersTableSchema",
|
||
|
message: error.message,
|
||
|
});
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
};
|