Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

display.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 'use strict'
  2. const Schmervice = require('@hapipal/schmervice')
  3. const internals = {}
  4. module.exports = class DisplayService extends Schmervice.Service {
  5. user({ password, ...user }, token) {
  6. return { ...user, token }
  7. }
  8. /**
  9. * List all memberships
  10. * @returns
  11. */
  12. membershipList() {
  13. const { Membership } = this.server.models()
  14. const memberships = Membership.query()
  15. server.log(Membership)
  16. return memberships
  17. }
  18. /**
  19. *
  20. * @param {number} currentUserId
  21. * @param {User} user
  22. * @param {*} txn
  23. * @returns
  24. */
  25. async profile(currentUserId, user, txn) {
  26. const { User } = this.server.models()
  27. const { toProfile } = internals
  28. const result = await User.fetchGraph(
  29. user,
  30. `[
  31. followedBy(currentUser) as following
  32. ]`,
  33. {
  34. txn,
  35. },
  36. ).modifiers({
  37. currentUser: builder => builder.where('Users.id', currentUserId),
  38. })
  39. return toProfile(result)
  40. }
  41. }
  42. internals.toProfile = ({ password, email, following, ...user }) => ({
  43. ...user,
  44. following: following.length > 0,
  45. })