@ -8,15 +8,15 @@ var user = require('./../user.js'),
nconf = require ( 'nconf' ) ,
meta = require ( './../meta' ) ;
( function ( User ) {
User . create _routes = function ( app ) {
( function ( User ) {
User . create _routes = function ( app ) {
app . get ( '/uid/:uid' , function ( req , res ) {
app . get ( '/uid/:uid' , function ( req , res ) {
if ( ! req . params . uid )
return res . redirect ( '/404' ) ;
user . getUserData ( req . params . uid , function ( err , data ) {
user . getUserData ( req . params . uid , function ( err , data ) {
if ( data ) {
res . send ( data ) ;
} else {
@ -27,68 +27,71 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( '/users' , function ( req , res ) {
app . namespace ( '/users' , function ( ) {
app . get ( '' , function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
app . get ( '/ users/ latest', function ( req , res ) {
app . get ( '/ latest', function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users/latest" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
app . get ( ' /users /sort-posts', function ( req , res ) {
app . get ( ' /sort-posts', function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users/sort-posts" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
app . get ( ' /users /sort-reputation', function ( req , res ) {
app . get ( ' /sort-reputation', function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users/sort-reputation" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
app . get ( '/ users/ online', function ( req , res ) {
app . get ( '/ online', function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users/online" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
app . get ( '/ users/ search', function ( req , res ) {
app . get ( '/ search', function ( req , res ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( "users/search" , "users" ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
} ) ;
app . get ( '/user/:userslug' , function ( req , res , next ) {
app . namespace ( '/user' , function ( ) {
app . get ( '/:userslug' , function ( req , res , next ) {
if ( ! req . params . userslug ) {
next ( ) ;
return ;
}
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
return next ( ) ;
}
@ -96,24 +99,24 @@ var user = require('./../user.js'),
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug , 'account' ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
} ) ;
app . get ( ' /user /:userslug/edit', function ( req , res ) {
app . get ( ' /:userslug/edit', function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
user . getUserField ( req . user . uid , 'userslug' , function ( err , userslug ) {
user . getUserField ( req . user . uid , 'userslug' , function ( err , userslug ) {
if ( req . params . userslug && userslug === req . params . userslug ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug + '/edit' , 'accountedit' ) + templates [ 'footer' ] ) ;
} ) ;
} else {
@ -122,17 +125,17 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( ' /user /:userslug/settings', function ( req , res ) {
app . get ( ' /:userslug/settings', function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
user . getUserField ( req . user . uid , 'userslug' , function ( err , userslug ) {
user . getUserField ( req . user . uid , 'userslug' , function ( err , userslug ) {
if ( req . params . userslug && userslug === req . params . userslug ) {
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug + '/settings' , 'accountsettings' ) + templates [ 'footer' ] ) ;
} )
} else {
@ -141,7 +144,7 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . post ( ' /user /uploadpicture', function ( req , res ) {
app . post ( ' /uploadpicture', function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
@ -163,7 +166,7 @@ var user = require('./../user.js'),
return ;
}
user . getUserField ( req . user . uid , 'uploadedpicture' , function ( err , oldpicture ) {
user . getUserField ( req . user . uid , 'uploadedpicture' , function ( err , oldpicture ) {
if ( ! oldpicture ) {
uploadUserPicture ( req . user . uid , path . extname ( req . files . userPhoto . name ) , req . files . userPhoto . path , res ) ;
return ;
@ -171,7 +174,7 @@ var user = require('./../user.js'),
var absolutePath = path . join ( process . cwd ( ) , nconf . get ( 'upload_path' ) , path . basename ( oldpicture ) ) ;
fs . unlink ( absolutePath , function ( err ) {
fs . unlink ( absolutePath , function ( err ) {
if ( err ) {
winston . err ( err ) ;
}
@ -180,6 +183,7 @@ var user = require('./../user.js'),
} ) ;
} ) ;
} ) ;
} ) ;
function uploadUserPicture ( uid , extension , tempPath , res ) {
if ( ! extension ) {
@ -197,7 +201,7 @@ var user = require('./../user.js'),
var is = fs . createReadStream ( tempPath ) ;
var os = fs . createWriteStream ( uploadPath ) ;
is . on ( 'end' , function ( ) {
is . on ( 'end' , function ( ) {
fs . unlinkSync ( tempPath ) ;
var imageUrl = nconf . get ( 'upload_url' ) + filename ;
@ -210,7 +214,7 @@ var user = require('./../user.js'),
dstPath : uploadPath ,
width : 128 ,
height : 128
} , function ( err , stdout , stderr ) {
} , function ( err , stdout , stderr ) {
if ( err ) {
winston . err ( err ) ;
}
@ -221,7 +225,7 @@ var user = require('./../user.js'),
} ) ;
} ) ;
os . on ( 'error' , function ( err ) {
os . on ( 'error' , function ( err ) {
fs . unlinkSync ( tempPath ) ;
winston . err ( err ) ;
} ) ;
@ -229,12 +233,12 @@ var user = require('./../user.js'),
is . pipe ( os ) ;
}
app . get ( '/user/:userslug/following' , function ( req , res ) {
app . get ( '/user/:userslug/following' , function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
res . redirect ( '/404' ) ;
return ;
@ -243,18 +247,18 @@ var user = require('./../user.js'),
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug + '/following' , 'following' ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
} ) ;
app . get ( '/user/:userslug/followers' , function ( req , res ) {
app . get ( '/user/:userslug/followers' , function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
res . redirect ( '/404' ) ;
return ;
@ -262,18 +266,18 @@ var user = require('./../user.js'),
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug + '/followers' , 'followers' ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
} ) ;
app . get ( '/user/:userslug/favourites' , function ( req , res ) {
app . get ( '/user/:userslug/favourites' , function ( req , res ) {
if ( ! req . user )
return res . redirect ( '/403' ) ;
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
res . redirect ( '/404' ) ;
return ;
@ -281,18 +285,18 @@ var user = require('./../user.js'),
app . build _header ( {
req : req ,
res : res
} , function ( err , header ) {
} , function ( err , header ) {
res . send ( header + app . create _route ( 'user/' + req . params . userslug + '/favourites' , 'favourites' ) + templates [ 'footer' ] ) ;
} ) ;
} ) ;
} ) ;
app . get ( '/api/user/:userslug/following' , function ( req , res ) {
app . get ( '/api/user/:userslug/following' , function ( req , res ) {
var callerUID = req . user ? req . user . uid : '0' ;
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
if ( userData ) {
user . getFollowing ( userData . uid , function ( followingData ) {
user . getFollowing ( userData . uid , function ( followingData ) {
userData . following = followingData ;
userData . followingCount = followingData . length ;
res . json ( userData ) ;
@ -306,12 +310,12 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( '/api/user/:userslug/followers' , function ( req , res ) {
app . get ( '/api/user/:userslug/followers' , function ( req , res ) {
var callerUID = req . user ? req . user . uid : '0' ;
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
if ( userData ) {
user . getFollowers ( userData . uid , function ( followersData ) {
user . getFollowers ( userData . uid , function ( followersData ) {
userData . followers = followersData ;
userData . followersCount = followersData . length ;
res . json ( userData ) ;
@ -324,18 +328,18 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( '/api/user/:userslug/edit' , function ( req , res ) {
app . get ( '/api/user/:userslug/edit' , function ( req , res ) {
var callerUID = req . user ? req . user . uid : '0' ;
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
res . json ( userData ) ;
} ) ;
} ) ;
app . get ( '/api/user/:userslug/settings' , function ( req , res , next ) {
app . get ( '/api/user/:userslug/settings' , function ( req , res , next ) {
var callerUID = req . user ? req . user . uid : '0' ;
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
res . json ( 404 , {
error : 'User not found!'
@ -351,7 +355,7 @@ var user = require('./../user.js'),
}
user . getUserFields ( uid , [ 'username' , 'userslug' , 'showemail' ] , function ( err , userData ) {
user . getUserFields ( uid , [ 'username' , 'userslug' , 'showemail' ] , function ( err , userData ) {
if ( err )
return next ( err ) ;
@ -370,10 +374,10 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( '/api/user/:userslug/favourites' , function ( req , res , next ) {
app . get ( '/api/user/:userslug/favourites' , function ( req , res , next ) {
var callerUID = req . user ? req . user . uid : '0' ;
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
user . get _uid _by _userslug ( req . params . userslug , function ( err , uid ) {
if ( ! uid ) {
res . json ( 404 , {
error : 'User not found!'
@ -388,12 +392,12 @@ var user = require('./../user.js'),
return ;
}
user . getUserFields ( uid , [ 'username' , 'userslug' ] , function ( err , userData ) {
user . getUserFields ( uid , [ 'username' , 'userslug' ] , function ( err , userData ) {
if ( err )
return next ( err ) ;
if ( userData ) {
posts . getFavourites ( uid , function ( err , posts ) {
posts . getFavourites ( uid , function ( err , posts ) {
if ( err )
return next ( err ) ;
userData . posts = posts ;
@ -409,15 +413,15 @@ var user = require('./../user.js'),
} ) ;
} ) ;
app . get ( '/api/user/:userslug' , function ( req , res ) {
app . get ( '/api/user/:userslug' , function ( req , res ) {
var callerUID = req . user ? req . user . uid : '0' ;
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
getUserDataByUserSlug ( req . params . userslug , callerUID , function ( userData ) {
if ( userData ) {
user . isFollowing ( callerUID , userData . theirid , function ( isFollowing ) {
posts . getPostsByUid ( userData . theirid , 0 , 9 , function ( posts ) {
user . isFollowing ( callerUID , userData . theirid , function ( isFollowing ) {
posts . getPostsByUid ( userData . theirid , 0 , 9 , function ( posts ) {
userData . posts = posts . filter ( function ( p ) {
userData . posts = posts . filter ( function ( p ) {
return p . deleted !== "1" ;
} ) ;
userData . isFollowing = isFollowing ;
@ -426,7 +430,7 @@ var user = require('./../user.js'),
if ( callerUID !== userData . uid )
user . incrementUserFieldBy ( userData . uid , 'profileviews' , 1 ) ;
postTools . parse ( userData . signature , function ( err , signature ) {
postTools . parse ( userData . signature , function ( err , signature ) {
userData . signature = signature ;
res . json ( userData ) ;
} ) ;
@ -449,7 +453,7 @@ var user = require('./../user.js'),
function getUsersSortedByJoinDate ( req , res ) {
user . getUsers ( 'users:joindate' , 0 , 49 , function ( err , data ) {
user . getUsers ( 'users:joindate' , 0 , 49 , function ( err , data ) {
res . json ( {
search _display : 'none' ,
loadmore _display : 'block' ,
@ -459,7 +463,7 @@ var user = require('./../user.js'),
}
function getUsersSortedByPosts ( req , res ) {
user . getUsers ( 'users:postcount' , 0 , 49 , function ( err , data ) {
user . getUsers ( 'users:postcount' , 0 , 49 , function ( err , data ) {
res . json ( {
search _display : 'none' ,
loadmore _display : 'block' ,
@ -469,7 +473,7 @@ var user = require('./../user.js'),
}
function getUsersSortedByReputation ( req , res ) {
user . getUsers ( 'users:reputation' , 0 , 49 , function ( err , data ) {
user . getUsers ( 'users:reputation' , 0 , 49 , function ( err , data ) {
res . json ( {
search _display : 'none' ,
loadmore _display : 'block' ,
@ -479,7 +483,7 @@ var user = require('./../user.js'),
}
function getOnlineUsers ( req , res ) {
user . getUsers ( 'users:online' , 0 , 49 , function ( err , data ) {
user . getUsers ( 'users:online' , 0 , 49 , function ( err , data ) {
res . json ( {
search _display : 'none' ,
loadmore _display : 'block' ,
@ -497,14 +501,14 @@ var user = require('./../user.js'),
}
function getUserDataByUserSlug ( userslug , callerUID , callback ) {
user . get _uid _by _userslug ( userslug , function ( err , uid ) {
user . get _uid _by _userslug ( userslug , function ( err , uid ) {
if ( uid === null ) {
callback ( null ) ;
return ;
}
user . getUserData ( uid , function ( err , data ) {
user . getUserData ( uid , function ( err , data ) {
if ( data ) {
data . joindate = new Date ( parseInt ( data . joindate , 10 ) ) . toISOString ( ) ;
@ -532,8 +536,8 @@ var user = require('./../user.js'),
data . yourid = callerUID ;
data . theirid = uid ;
user . getFollowingCount ( uid , function ( followingCount ) {
user . getFollowerCount ( uid , function ( followerCount ) {
user . getFollowingCount ( uid , function ( followingCount ) {
user . getFollowerCount ( uid , function ( followerCount ) {
data . followingCount = followingCount ;
data . followerCount = followerCount ;
callback ( data ) ;