👌 create verbosity level

creating verbosity for specify what data that will fetch from user data
This commit is contained in:
Rafi Arrafif
2025-07-18 22:35:34 +07:00
parent b5c4fc56a0
commit d98f1cb9c6

View File

@ -16,7 +16,38 @@ export const findUserService = async (payload: getUserDataService) => {
const repoFn = repositoryMap[payload.queryTarget];
if (!repoFn) throw new AppError(502, "Repository handler not found");
return await repoFn(payload.identifier);
const userData = await repoFn(payload.identifier);
const existsVerbosity = ["exists"].includes(payload.options.verbosity);
const fullVerbosity = ["full"].includes(payload.options.verbosity);
const basicVerbosity = ["basic", "full"].includes(
payload.options.verbosity
);
if (!userData) throw new AppError(404, "User not found");
if (existsVerbosity) return true;
const response = {
...(fullVerbosity && { id: userData?.id }),
...(basicVerbosity && { name: userData?.name }),
...(basicVerbosity && { username: userData?.username }),
...(fullVerbosity && { email: userData?.email }),
...(fullVerbosity && { password: userData?.password }),
...(fullVerbosity && { birthDate: userData?.birthDate }),
...(fullVerbosity && { gender: userData?.gender }),
...(fullVerbosity && { phoneCC: userData?.phoneCC }),
...(fullVerbosity && { phoneNumber: userData?.phoneNumber }),
...(basicVerbosity && { bioProfile: userData?.bioProfile }),
...(basicVerbosity && { avatar: userData?.avatar }),
...(basicVerbosity && { commentBackground: userData?.commentBackground }),
...(fullVerbosity && { verifiedAt: userData?.verifiedAt }),
...(fullVerbosity && { disabledAt: userData?.disabledAt }),
...(fullVerbosity && { deletedAt: userData?.deletedAt }),
...(fullVerbosity && { createdAt: userData?.createdAt }),
...(fullVerbosity && { updatedAt: userData?.updatedAt }),
};
return response;
} catch (error) {
ErrorForwarder(error);
}