From 2ae964053cad804db2ca0968db263152dffbeec9 Mon Sep 17 00:00:00 2001
From: Jure Triglav <juretriglav@gmail.com>
Date: Fri, 1 Feb 2019 17:50:13 +1300
Subject: [PATCH] feat(model-user): improve eager loading in graphql

---
 packages/components/model-user/src/graphql.js | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/packages/components/model-user/src/graphql.js b/packages/components/model-user/src/graphql.js
index 1d26c3191..198384657 100644
--- a/packages/components/model-user/src/graphql.js
+++ b/packages/components/model-user/src/graphql.js
@@ -1,18 +1,19 @@
 const logger = require('@pubsweet/logger')
-const User = require('./user')
+
+const eager = 'teams.members.[user, alias]'
 
 const resolvers = {
   Query: {
     user(_, { id }, ctx) {
-      return ctx.connectors.User.fetchOne(id, ctx)
+      return ctx.connectors.User.fetchOne(id, ctx, { eager })
     },
     users(_, { where }, ctx) {
-      return ctx.connectors.User.fetchAll(where, ctx, { eager: 'teams' })
+      return ctx.connectors.User.fetchAll(where, ctx, { eager })
     },
     // Authentication
     currentUser(_, vars, ctx) {
       if (!ctx.user) return null
-      return User.find(ctx.user)
+      return ctx.connectors.User.model.find(ctx.user)
     },
   },
   Mutation: {
@@ -33,13 +34,13 @@ const resolvers = {
       return ctx.connectors.User.update(id, input, ctx)
     },
     // Authentication
-    async loginUser(_, { input }) {
+    async loginUser(_, { input }, ctx) {
       const authentication = require('pubsweet-server/src/authentication')
 
       let isValid = false
       let user
       try {
-        user = await User.findByUsername(input.username)
+        user = await ctx.connectors.User.model.findByUsername(input.username)
         isValid = await user.validPassword(input.password)
       } catch (err) {
         logger.debug(err)
-- 
GitLab