diff --git a/src/models/user/user.controller.js b/src/models/user/user.controller.js index 37bb7814f25e3300dd3b2c763d670ba185b21220..79914d24c9e8053fe9efede230a4283061f3cb42 100644 --- a/src/models/user/user.controller.js +++ b/src/models/user/user.controller.js @@ -83,7 +83,7 @@ const getUser = async (id, options = {}) => { const getDisplayName = async user => user.getDisplayName() -const getUsers = async (options = {}) => { +const getUsers = async (queryParams = {}, options = {}) => { try { const { trx, ...restOptions } = options return useTransaction( @@ -91,7 +91,7 @@ const getUsers = async (options = {}) => { logger.info( `${USER_CONTROLLER} getUsers: fetching all users based on provided options ${restOptions}`, ) - return User.find({}, { trx: tr, ...restOptions }) + return User.find(queryParams, { trx: tr, ...restOptions }) }, { trx, passedTrxOnly: true }, ) diff --git a/src/models/user/user.graphql b/src/models/user/user.graphql index 4bcb0716f5e0ee7990804a0823e1ef6fbaf2a62b..a5be912531b79d3e2b04fe60f8fdca162782dc28 100644 --- a/src/models/user/user.graphql +++ b/src/models/user/user.graphql @@ -3,7 +3,7 @@ scalar DateTime # find a better place to inject that input PageInput { pageSize: Int! - pageNumber: Int! + page: Int! } # type User { @@ -68,9 +68,13 @@ input UpdatePasswordInput { newPassword: String! } +input UsersQueryParams { + isActive: Boolean +} + extend type Query { user(id: ID): User - users: Users! + users(queryParams: UsersQueryParams, options: PageInput): Users! currentUser: User! } diff --git a/src/models/user/user.resolvers.js b/src/models/user/user.resolvers.js index 8234853922e969892a3b9d8dd180b5cb0320749b..50567525a10eff28d237f455695b3f38d5ec57fc 100644 --- a/src/models/user/user.resolvers.js +++ b/src/models/user/user.resolvers.js @@ -38,10 +38,10 @@ const userResolver = async (_, { id }, ctx) => { } } -const usersResolver = async (_, args, ctx) => { +const usersResolver = async (_, { queryParams, options }, ctx) => { try { logger.error(`${USER_RESOLVER} users`) - return getUsers() + return getUsers(queryParams, options) } catch (e) { logger.error(`${USER_RESOLVER} users: ${e.message}`) throw new Error(e)