UNPKG

@coko/server

Version:

Reusable server for use by Coko's projects

270 lines 9.36 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const graphql_subscriptions_1 = require("graphql-subscriptions"); const logger_1 = __importDefault(require("../../logger")); const pubsub_1 = __importDefault(require("../../graphql/pubsub")); const constants_1 = require("./constants"); const user_controller_1 = require("./user.controller"); const identity_controller_1 = require("../identity/identity.controller"); const { USER_RESOLVER } = constants_1.labels; const { USER_UPDATED } = constants_1.subscriptions; const userResolver = async (_, { id }) => { try { logger_1.default.info(`${USER_RESOLVER} user`); return (0, user_controller_1.getUser)(id); } catch (e) { logger_1.default.error(`${USER_RESOLVER} user: ${e.message}`); throw e; } }; const usersResolver = async (_, { filter, pagination }) => { try { logger_1.default.info(`${USER_RESOLVER} users`); return (0, user_controller_1.getUsers)(filter, pagination); } catch (e) { logger_1.default.error(`${USER_RESOLVER} users: ${e.message}`); throw e; } }; const currentUserResolver = async (_, __, ctx) => { try { logger_1.default.info(`${USER_RESOLVER} currentUser`); if (!ctx.userId) return null; return (0, user_controller_1.getUser)(ctx.userId); } catch (e) { logger_1.default.error(`${USER_RESOLVER} currentUser: ${e.message}`); throw e; } }; const activateUserResolver = async (_, { id }) => { try { logger_1.default.info(`${USER_RESOLVER} activateUser`); return (0, user_controller_1.activateUser)(id); } catch (e) { logger_1.default.error(`${USER_RESOLVER} activateUser: ${e.message}`); throw e; } }; const activateUsersResolver = async (_, { ids }) => { try { logger_1.default.info(`${USER_RESOLVER} activateUsers`); return (0, user_controller_1.activateUsers)(ids); } catch (e) { logger_1.default.error(`${USER_RESOLVER} activateUsers: ${e.message}`); throw e; } }; const deleteUserResolver = async (_, { id }) => { try { logger_1.default.info(`${USER_RESOLVER} deleteUser`); return (0, user_controller_1.deleteUser)(id); } catch (e) { logger_1.default.error(`${USER_RESOLVER} deleteUser: ${e.message}`); throw e; } }; const deleteUsersResolver = async (_, { ids }) => { try { logger_1.default.info(`${USER_RESOLVER} deleteUsers`); return (0, user_controller_1.deleteUsers)(ids); } catch (e) { logger_1.default.error(`${USER_RESOLVER} deleteUsers: ${e.message}`); throw e; } }; const deactivateUserResolver = async (_, { id }) => { try { logger_1.default.info(`${USER_RESOLVER} deactivateUser`); return (0, user_controller_1.deactivateUser)(id); } catch (e) { logger_1.default.error(`${USER_RESOLVER} deactivateUser: ${e.message}`); throw e; } }; const deactivateUsersResolver = async (_, { ids }) => { try { logger_1.default.info(`${USER_RESOLVER} deactivateUsers`); return (0, user_controller_1.deactivateUsers)(ids); } catch (e) { logger_1.default.error(`${USER_RESOLVER} deactivateUsers: ${e.message}`); throw e; } }; const updateUserResolver = async (_, { id, input }) => { try { logger_1.default.info(`${USER_RESOLVER} updateUser`); const updatedUser = await (0, user_controller_1.updateUser)(id, input); pubsub_1.default.publish(USER_UPDATED, { userUpdated: updatedUser, }); return updatedUser; } catch (e) { logger_1.default.error(`${USER_RESOLVER} updateUser: ${e.message}`); throw e; } }; const loginResolver = async (_, { input }) => { try { logger_1.default.info(`${USER_RESOLVER} login`); return (0, user_controller_1.login)(input); } catch (e) { logger_1.default.error(`${USER_RESOLVER} login: ${e.message}`); throw e; } }; const signUpResolver = async (_, { input }) => { try { logger_1.default.info(`${USER_RESOLVER} signUp`); return (0, user_controller_1.signUp)(input); } catch (e) { logger_1.default.error(`${USER_RESOLVER} signUp: ${e.message}`); throw e; } }; const setDefaultIdentityResolver = async (_, { userId, identityId }) => { try { logger_1.default.info(`${USER_RESOLVER} setDefaultIdentity`); return (0, user_controller_1.setDefaultIdentity)(userId, identityId); } catch (e) { logger_1.default.error(`${USER_RESOLVER} setDefaultIdentity: ${e.message}`); throw e; } }; const verifyEmailResolver = async (_, { token }) => { try { logger_1.default.info(`${USER_RESOLVER} verifyEmail`); return (0, user_controller_1.verifyEmail)(token); } catch (e) { logger_1.default.error(`${USER_RESOLVER} verifyEmail: ${e.message}`); throw e; } }; const resendVerificationEmailResolver = async (_, { token }) => { try { logger_1.default.info(`${USER_RESOLVER} resendVerificationEmail`); return (0, user_controller_1.resendVerificationEmail)(token); } catch (e) { logger_1.default.error(`${USER_RESOLVER} resendVerificationEmail: ${e.message}`); throw e; } }; const resendVerificationEmailAfterLoginResolver = async (_, __, ctx) => { try { logger_1.default.info(`${USER_RESOLVER} resendVerificationEmailAfterLogin`); return (0, user_controller_1.resendVerificationEmailAfterLogin)(ctx.userId); } catch (e) { logger_1.default.error(`${USER_RESOLVER} resendVerificationEmailAfterLogin: ${e.message}`); throw e; } }; const updatePasswordResolver = async (_, { input }) => { try { logger_1.default.info(`${USER_RESOLVER} updatePassword`); const { id, currentPassword, newPassword } = input; return (0, user_controller_1.updatePassword)(id, currentPassword, newPassword); } catch (e) { logger_1.default.error(`${USER_RESOLVER} updatePassword: ${e.message}`); throw e; } }; const sendPasswordResetEmailResolver = async (_, { email }) => { try { logger_1.default.info(`${USER_RESOLVER} sendPasswordResetEmail`); return (0, user_controller_1.sendPasswordResetEmail)(email); } catch (e) { logger_1.default.error(`${USER_RESOLVER} sendPasswordResetEmail: ${e.message}`); throw e; } }; const resetPasswordResolver = async (_, { token, password }) => { try { logger_1.default.info(`${USER_RESOLVER} resetPassword`); return (0, user_controller_1.resetPassword)(token, password); } catch (e) { logger_1.default.error(`${USER_RESOLVER} resetPassword: ${e.message}`); throw e; } }; const identitiesResolver = async (user, _) => { const identities = await (0, identity_controller_1.getUserIdentities)(user.id); return identities.result; // return ctx.loaders.Identity.identitiesBasedOnUserIdsLoader.load(user.id) }; const defaultIdentityResolver = async (user) => { return (0, identity_controller_1.getDefaultIdentity)(user.id); // return ctx.loaders.Identity.defaultIdentityBasedOnUserIdsLoader.load(user.id) }; const displayNameResolver = (user) => { return (0, user_controller_1.getDisplayName)(user); }; // TODO loader const teamsResolver = async (user) => { return (0, user_controller_1.getUserTeams)(user); }; const resolvers = { Query: { user: userResolver, users: usersResolver, currentUser: currentUserResolver, }, Mutation: { activateUser: activateUserResolver, activateUsers: activateUsersResolver, deleteUser: deleteUserResolver, deleteUsers: deleteUsersResolver, deactivateUser: deactivateUserResolver, deactivateUsers: deactivateUsersResolver, updateUser: updateUserResolver, login: loginResolver, signUp: signUpResolver, setDefaultIdentity: setDefaultIdentityResolver, verifyEmail: verifyEmailResolver, resendVerificationEmail: resendVerificationEmailResolver, resendVerificationEmailAfterLogin: resendVerificationEmailAfterLoginResolver, updatePassword: updatePasswordResolver, sendPasswordResetEmail: sendPasswordResetEmailResolver, resetPassword: resetPasswordResolver, }, User: { identities: identitiesResolver, defaultIdentity: defaultIdentityResolver, displayName: displayNameResolver, teams: teamsResolver, }, Subscription: { userUpdated: { subscribe: async (...args) => { return (0, graphql_subscriptions_1.withFilter)(() => { return pubsub_1.default.asyncIterator(USER_UPDATED); }, (payload, variables) => { return variables?.userId === payload.userUpdated.id; })(...args); }, }, }, }; exports.default = resolvers; //# sourceMappingURL=user.resolvers.js.map