'use strict' const Schmervice = require('@hapipal/schmervice') const internals = {} module.exports = class DisplayService extends Schmervice.Service { user({ password, ...user }, token) { return { ...user, token } } /** * List all memberships * @returns */ membershipList() { const { Membership } = this.server.models() const memberships = Membership.query() server.log(Membership) return memberships } /** * * @param {number} currentUserId * @param {User} user * @param {*} txn * @returns */ async profile(currentUserId, user, txn) { const { User } = this.server.models() const { toProfile } = internals const result = await User.fetchGraph( user, `[ followedBy(currentUser) as following ]`, { txn, }, ).modifiers({ currentUser: builder => builder.where('Users.id', currentUserId), }) return toProfile(result) } } internals.toProfile = ({ password, email, following, ...user }) => ({ ...user, following: following.length > 0, })