diff --git a/src/server/models/friendship.model.js b/src/server/models/friendship.model.js index c9d4bb7..7684ade 100644 --- a/src/server/models/friendship.model.js +++ b/src/server/models/friendship.model.js @@ -1,7 +1,14 @@ +import {DataTypes as Types} from 'sequelize'; import BaseModel from './base'; class Friendship extends BaseModel { + static get attributes() { + return { + state: Types.ENUM(['pending', 'active']), + }; + } + static associate({User}) { User.hasMany(this, { as: 'adder', diff --git a/src/server/models/user.model.js b/src/server/models/user.model.js index b70b634..41df6d2 100644 --- a/src/server/models/user.model.js +++ b/src/server/models/user.model.js @@ -44,7 +44,17 @@ class User extends BaseModel { ], }, }); - return friendships.map(({adderId, addeeId}) => (adderId === this.id ? addeeId : adderId)); + return Promise.all( + friendships.map(async ({adderId, addeeId, state}) => { + const otherId = adderId === this.id ? addeeId : adderId; + const user = await User.findByPk(otherId); + return { + id: user.id, + redditUsername: user.redditUsername, + state, + }; + }), + ); } validatePassword(plaintext) {