'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) })