40 lines
949 B
TypeScript
40 lines
949 B
TypeScript
import {
|
|
APIGetUserFunctionParams,
|
|
GetUserFunctionReturn,
|
|
} from "../../../types";
|
|
import grabDbFullName from "../../../utils/grab-db-full-name";
|
|
import dbHandler from "../../backend/dbHandler";
|
|
|
|
/**
|
|
* # API Get User
|
|
*/
|
|
export default async function apiGetUser({
|
|
fields,
|
|
database,
|
|
userId,
|
|
dbUserId,
|
|
selectAll,
|
|
}: APIGetUserFunctionParams): Promise<GetUserFunctionReturn> {
|
|
const finalDbName = grabDbFullName({ dbName: database, userId: dbUserId });
|
|
|
|
const selectFields = selectAll ? "*" : fields?.[0] ? fields.join(",") : "*";
|
|
|
|
let foundUser = (await dbHandler({
|
|
query: `SELECT ${selectFields} FROM users WHERE id=?`,
|
|
values: [userId],
|
|
database: finalDbName,
|
|
})) as any[];
|
|
|
|
if (!foundUser || !foundUser[0]) {
|
|
return {
|
|
success: false,
|
|
payload: null,
|
|
};
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
payload: foundUser[0],
|
|
};
|
|
}
|