File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ const Connection = require('../db/connection')
5
5
server . method ( 'connection.create' , create , { } )
6
6
server . method ( 'connection.update' , update , { } )
7
7
server . method ( 'connection.list' , list , { } )
8
+ server . method ( 'connection.getSuggestions' , getSuggestions , { } )
8
9
server . method ( 'connection.remove' , remove , { } )
9
10
10
11
async function create ( connection ) {
@@ -63,6 +64,15 @@ async function list(filter = {}) {
63
64
return Connection . find ( filter )
64
65
}
65
66
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
+
66
76
async function remove ( filter ) {
67
77
return Connection . findOneAndRemove ( filter )
68
78
}
Original file line number Diff line number Diff line change 1
1
const Joi = require ( 'joi' )
2
2
const render = require ( '../../views/connection' )
3
+ const renderUser = require ( '../../views/user' )
3
4
const log = require ( '../../helpers/logger' )
4
5
const Boom = require ( '@hapi/boom' )
5
6
@@ -111,11 +112,13 @@ exports.getUserConnections = {
111
112
handler : async function ( request , h ) {
112
113
try {
113
114
const edition = await request . server . methods . deck . getLatestEdition ( )
115
+ const userId = request . auth . credentials . user . id
114
116
const connections = await request . server . methods . connection . list ( {
115
- from : request . auth . credentials . user . id ,
117
+ from : userId ,
116
118
edition : edition . id
117
119
} )
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 ) } )
119
122
} catch ( err ) {
120
123
log . error ( { err : err } , 'error getting user connections' )
121
124
return Boom . boomify ( err )
You can’t perform that action at this time.
0 commit comments