import { DefineMap, DefineList, QueryLogic } from 'can' import feathersClient from '../feathers-client' import feathersConnection from './connections/feathers' import feathersQueryLogic from 'feathers-query-logic' const User = DefineMap.extend({ _id: { identity: true, type: 'string' }, email: 'string', password: 'string' }) User.List = DefineList.extend({ '#': User, get usersById () { return this.reduce((users, user) => { users[user._id] = user return users }, {}) }, get usersByEmail () { // Map to object keyed by name for easy lookup return this.reduce((users, user) => { users[user.email] = user return users }, {}) } }) User.connection = feathersConnection({ idProp: '_id', Map: User, List: User.List, name: 'user', feathersService: feathersClient.service('users'), queryLogic: new QueryLogic(User, feathersQueryLogic) }) export default User