user.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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.models.users.query()
  12. .select('id', 'email', 'name', 'providerKey', 'isSystem', 'createdAt')
  13. },
  14. async search(obj, args, context, info) {
  15. return WIKI.models.users.query()
  16. .where('email', 'like', `%${args.query}%`)
  17. .orWhere('name', 'like', `%${args.query}%`)
  18. .limit(10)
  19. .select('id', 'email', 'name', 'providerKey', 'createdAt')
  20. },
  21. async single(obj, args, context, info) {
  22. let usr = await WIKI.models.users.query().findById(args.id)
  23. console.info(usr)
  24. usr.password = ''
  25. usr.tfaSecret = ''
  26. return usr
  27. }
  28. },
  29. UserMutation: {
  30. create(obj, args) {
  31. return WIKI.models.users.register({
  32. ...args,
  33. verify: false,
  34. bypassChecks: true
  35. })
  36. },
  37. delete(obj, args) {
  38. return WIKI.models.users.query().deleteById(args.id)
  39. },
  40. update(obj, args) {
  41. return WIKI.models.users.query().patch({
  42. email: args.email,
  43. name: args.name,
  44. provider: args.provider,
  45. providerId: args.providerId
  46. }).where('id', args.id)
  47. },
  48. resetPassword(obj, args) {
  49. return false
  50. },
  51. setPassword(obj, args) {
  52. return false
  53. }
  54. },
  55. User: {
  56. groups(usr) {
  57. return usr.$relatedQuery('groups')
  58. }
  59. }
  60. }