Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

display.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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(user, `[
  29. followedBy(currentUser) as following
  30. ]`, {
  31. txn
  32. }).modifiers({
  33. currentUser: (builder) => builder.where('Users.id', currentUserId)
  34. })
  35. return toProfile(result)
  36. }
  37. }
  38. internals.toProfile = ({ password, email, following, ...user }) => ({
  39. ...user,
  40. following: (following.length > 0)
  41. })