Skip to content

Commit 7af1ae9

Browse files
committed
feat: add suggestions to connections
1 parent 388b9c2 commit 7af1ae9

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

server/resources/connection.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const Connection = require('../db/connection')
55
server.method('connection.create', create, {})
66
server.method('connection.update', update, {})
77
server.method('connection.list', list, {})
8+
server.method('connection.getSuggestions', getSuggestions, {})
89
server.method('connection.remove', remove, {})
910

1011
async function create(connection) {
@@ -63,6 +64,15 @@ async function list(filter = {}) {
6364
return Connection.find(filter)
6465
}
6566

67+
async function getSuggestions(userId, editionId) {
68+
const connections = await Connection.aggregate([
69+
{ $match: { to: userId, edition: editionId }},
70+
{ $sample: { size: 5 }}
71+
])
72+
73+
return server.methods.user.getMulti(connections.map(c => c.from))
74+
}
75+
6676
async function remove(filter) {
6777
return Connection.findOneAndRemove(filter)
6878
}

server/routes/connection/handlers.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const Joi = require('joi')
22
const render = require('../../views/connection')
3+
const renderUser = require('../../views/user')
34
const log = require('../../helpers/logger')
45
const Boom = require('@hapi/boom')
56

@@ -111,11 +112,13 @@ exports.getUserConnections = {
111112
handler: async function (request, h) {
112113
try {
113114
const edition = await request.server.methods.deck.getLatestEdition()
115+
const userId = request.auth.credentials.user.id
114116
const connections = await request.server.methods.connection.list({
115-
from: request.auth.credentials.user.id,
117+
from: userId,
116118
edition: edition.id
117119
})
118-
return h.response(render(connections))
120+
const sugestions = await request.server.methods.connection.getSuggestions(userId, edition.id)
121+
return h.response({connections: render( connections), suggestions: renderUser(sugestions)})
119122
} catch (err) {
120123
log.error({ err: err }, 'error getting user connections')
121124
return Boom.boomify(err)

0 commit comments

Comments
 (0)