user.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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.users.query()
  12. .select('id', 'email', 'name', 'provider', 'role', 'createdAt', 'updatedAt')
  13. },
  14. async search(obj, args, context, info) {
  15. return WIKI.db.users.query()
  16. .where('email', 'like', `%${args.query}%`)
  17. .orWhere('name', 'like', `%${args.query}%`)
  18. .limit(10)
  19. .select('id', 'email', 'name', 'provider', 'role', 'createdAt', 'updatedAt')
  20. },
  21. async single(obj, args, context, info) {
  22. return WIKI.db.users.query().findById(args.id)
  23. }
  24. },
  25. UserMutation: {
  26. create(obj, args) {
  27. return WIKI.db.users.query().insertAndFetch(args)
  28. },
  29. delete(obj, args) {
  30. return WIKI.db.users.query().deleteById(args.id)
  31. },
  32. update(obj, args) {
  33. return WIKI.db.users.query().patch({
  34. email: args.email,
  35. name: args.name,
  36. provider: args.provider,
  37. providerId: args.providerId,
  38. role: args.role
  39. }).where('id', args.id)
  40. },
  41. resetPassword(obj, args) {
  42. return false
  43. },
  44. setPassword(obj, args) {
  45. return false
  46. }
  47. },
  48. User: {
  49. groups(usr) {
  50. return usr.getGroups()
  51. }
  52. }
  53. }