user.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* global WIKI */
  2. module.exports = {
  3. Query: {
  4. async users() { return {} }
  5. },
  6. Mutation: {
  7. async users() { return {} }
  8. },
  9. UserQuery: {
  10. async list(obj, args, context, info) {
  11. return WIKI.db.User.findAll({
  12. attributes: {
  13. exclude: ['password', 'tfaSecret']
  14. },
  15. raw: true
  16. })
  17. },
  18. async search(obj, args, context, info) {
  19. return WIKI.db.User.findAll({
  20. where: {
  21. $or: [
  22. { email: { $like: `%${args.query}%` } },
  23. { name: { $like: `%${args.query}%` } }
  24. ]
  25. },
  26. limit: 10,
  27. attributes: ['id', 'email', 'name', 'provider', 'role', 'createdAt', 'updatedAt'],
  28. raw: true
  29. })
  30. },
  31. async single(obj, args, context, info) {
  32. return WIKI.db.User.findById(args.id)
  33. }
  34. },
  35. UserMutation: {
  36. create(obj, args) {
  37. return WIKI.db.User.create(args)
  38. },
  39. delete(obj, args) {
  40. return WIKI.db.User.destroy({
  41. where: {
  42. id: args.id
  43. },
  44. limit: 1
  45. })
  46. },
  47. update(obj, args) {
  48. return WIKI.db.User.update({
  49. email: args.email,
  50. name: args.name,
  51. provider: args.provider,
  52. providerId: args.providerId,
  53. role: args.role
  54. }, {
  55. where: { id: args.id }
  56. })
  57. },
  58. resetPassword(obj, args) {
  59. return false
  60. },
  61. setPassword(obj, args) {
  62. return false
  63. }
  64. },
  65. User: {
  66. groups(usr) {
  67. return usr.getGroups()
  68. }
  69. }
  70. }